Конвертеры классов Java JPA - PullRequest
4 голосов
/ 12 июля 2011

Я использую EclipseLink в Glassfish с моим приложением JavaEE и у меня есть несколько java.util.Locale-столбцов в моих классах моделей, которые я хотел бы хранить как String-столбцы в таблицах своей базы данных.

IЯ знаю, что Hibernate отправляет аннотации конверсии, и я могу создать свой собственный конвертер, реализующий org.eclipse.persistence.mappings.converters.Converter.Однако я должен зависеть от того, какая из этих библиотек будет их использовать.

Есть ли способ получить эту функциональность, не полагаясь напрямую на EclipseLink или Hibernate и не придерживаясь спецификации JPA?

Ответы [ 2 ]

7 голосов
/ 12 июля 2011

JPA не предоставляет эту функцию: (... на самом деле, это базовая функция очень, очень простая. Вы можете достичь того же, создав виртуальный атрибут, поэтому у вас есть поле String в вашем классе, которое сопоставляется, а затем вы создаете виртуальный атрибут с помощью setLocale (Locale) и Locale getLocale (), которые преобразуют строку в Locale и возвращают ее или извлекают строковое представление языкового стандарта.

Я знаю, что это не WOW, но это единственный способ избежать использования пользовательских аннотаций EclipseLink или Hibernate.

5 голосов
/ 23 декабря 2012

JPA 2.1 вводит аннотацию AttributeConverter и @Converter.

Я работал с DataNucleus, который его поддерживает. И поддержка EclipseLink, похоже, находится в разработке . Я не знаю о Hibernate.

...