Usando UUID con EclipseLink y PostgreSQL

Quiero usar el tipo de uuid de PostgreSQL para las claves primarias de los objetos. Para eso he creado un convertidor (implementando la interfaz del convertidor). A continuación se muestra el código correspondiente:

    @Override
    public void initialize(DatabaseMapping mapping, Session session) {
        final DatabaseField field;
        if (mapping instanceof DirectCollectionMapping) {
            field = ((DirectCollectionMapping) mapping).getDirectField();
        } else {
            field = mapping.getField();
        }

        field.setSqlType(Types.OTHER);
        field.setTypeName("uuid");
        field.setColumnDefinition("UUID");
    }

Luego he anotado la entidad relevante X con las siguientes anotaciones:

@Converter(name="uuidConverter",converterCalss=UUIDConverter.class)
@Convert("uuidConverter")
@Id
public UUID getId()
{
    return id;
}

El problema es que tengo otra clase (Y) que tiene la siguiente definición:

@ManyToOne(targetEntity = X.class)
@JoinColumn(name = "x_id")
public X getX();

Aunque EclipseLink creó las tablas como se esperaba, envía una cadena a la base de datos cuando intenta insertar objetos de tipo Y. Postgres devuelve el siguiente mensaje de error:

column "id" is of type uuid but expression is of type character varying at character

Cualquier solución / trabajo será apreciado.

Respuestas a la pregunta(5)

Su respuesta a la pregunta