jpa独立定制类型映射/ javax.persistence.x替代org.hibernate.annotations.Type和org.hibernate.annotations.TypeDef

前端之家收集整理的这篇文章主要介绍了jpa独立定制类型映射/ javax.persistence.x替代org.hibernate.annotations.Type和org.hibernate.annotations.TypeDef前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在一个数据库中有一个表GameCycle,它包含一个类型号的列日期.此列中的值为8位数字,表示“20130301”的倒数日期.映射到这个表上,我有一个GameCycle类,其中包含 java.util.Date类型的受保护字段iDate.该字段使用自定义类型映射注释为“@Type(type =”reverseDate“)’.类Gamecycle被注释为’@TypeDef(name =“inverseDate”,typeClass = InverseDateType.class)’
import org.hibernate.annotations.Type;
import org.hibernate.annotations.TypeDef;

@Entity
@TypeDef(name = "inverseDate",typeClass = InverseDateType.class)
@Table(name = "GAMECYCLE")
public class GameCycle implements Comparable<GameCycle>,Serializable
{
    @Type(type = "inverseDate")
    @Column(name = "GC_DATE",nullable = false)
    protected Date iDate = null;
    ...

显然,导入绑定我使用hibernate作为一个jpa实现,所以我的问题是:

有没有办法摆脱hibernate注释,并使用纯javax.persistence解决方案进行相同的自定义类型映射?

解决方法

否JPA规范的当前版本不支持自定义类型映射.它是未来JPA 2.1最受欢迎的功能之一.

如果你真的想摆脱Hibernate特定的烦恼,你唯一可以做的就是将你的字段映射为String并手动执行必要的转换(在getters / setter中).

但在实践中,几乎每个基于JPA的大型应用程序都使用持久性提供程序的一些实现特定功能,因此我不认为在这种情况下避免依赖于Hibernate非常重要.

猜你在找的Java相关文章