Использование UUID с EclipseLink и PostgreSQL

Я хочу использовать тип uuid PostgreSQL для объектов первичные ключи. За что ямы создали конвертер (реализующий интерфейс конвертера). Ниже приведен соответствующий код:

    @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");
    }

Затем я'мы аннотировали соответствующую сущность X нижеуказанными аннотациями:

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

Проблема в том, что у меня есть другой класс (Y), который имеет следующее определение:

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

Хотя EclipseLink создал таблицы, как и ожидалось, он отправляет строку в базу данных при попытке вставить объекты типа Y. Postgres возвращает следующее сообщение об ошибке:

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

Любые решения / обходные пути будут оценены.

Ответы на вопрос(5)

Ваш ответ на вопрос