Java JPA类转换器

sam*_*lux 4 java hibernate jpa eclipselink

我在Glassfish中使用EclipseLink和我的JavaEE应用程序,并在我的模型类中有一些java.util.Locale-columns,我想在我的数据库表中存储为String-columns.

我知道Hibernate提供了它的转换注释,我可以构建自己的转换器实现org.eclipse.persistence.mappings.converters.Converter.但是,我必须依赖这些库中的任何一个来使用它们.

有没有办法在不直接依赖EclipseLink或Hibernate并保持JPA规范的情况下获得此功能?

Aug*_*sto 7

JPA没有提供这个功能:( ...实际上,它的功能基础非常非常基础.你可以通过创建一个虚拟属性来实现同样的功能,所以你的类中有一个String字段,它被映射,并且然后使用setLocale(Locale)和Locale getLocale()创建一个虚拟属性,它将字符串转换为Locale并返回它或提取语言环境的字符串表示形式.

我知道它不是WOW,但它是避免使用EclipseLink或Hibernate自定义注释的唯一方法.


Adr*_*Ber 5

JPA 2.1引入了AttributeConverter和@Converter注释.

我使用支持它的DataNucleus.EclipseLink支持似乎正在开发中.我不知道Hibernate.