.hibernate.usertype

  • Post author:
  • Post category:其他


考虑定制的映射类型拿前面章节的的Address类的映射作为组件来举例:

当然,在这个例子中,使用定制的映射类型替换组件映射的好处是令人置疑的。只要在加载和保存这个对象时不需要特殊的转化,现在必须编写的CustomAddressType就是额外的工作。然而,你可能已经看到定制的映射类型提供了一个额外的缓冲区–当在长期运行中需要额外的转化时,可能派得上用场的东西。

扩展点 Hibernate提供定义定制的映射类型时应用程序可能使用的几个接口。这些接口减少了创建新映射类型所涉及的工作,并使定制的类型免受Hibernate核心变化的影响。这帮助你轻松地升级Hibernate,并保留现有的定制映射类型。

扩展点如下:

org.hibernate.usertype.UserType–基础的扩展点,用于多种情况。它为定制值类型实例的加载和存储提供基础的方法。

org.hibernate.usertype.CompositeUserType–包含比基础的UserType更多方法的一个接口,通常把有关值类型类的内部信息公开给Hibernate,例如单独的属性。然后可以在Hibernate查询中引用这些属性。

org.hibernate.usertype.UserCollectionType–很少被用来实现定制集合的接口。实现这个接口的定制映射类型不是在属性映射中声明,而是只对定制的集合映射有用。如果想要持久化一个非JDK的集合,并持久保持额外的主义时,就必须实现这个类型。

org.hibernate.usertype.EnhanceUserType–扩展了UserType并提供额外方法的接口,这些方法用来把值类型封送到XML表示法(或者从XML表示法中封送值类型),或者启用一个定制的映射类型,在标识符和辨别标志映射中使用。

org.hibernate.usertyp



版权声明:本文为u012402926原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。