Hibernate 中UserType 接口用于设计自定义的类型与数据库的字段进行映射关系,这里的数据库字段可以是多个字段,而不仅仅是某一个字段。
那么Hibernate 这样的设计对程序有何意义或者说优点在于何处呢?因为我们同样可以使用编码的方式实现这样的功能!
使用UserType 最重要的一个原因是它可以实现业务层数据与数据库数据的分离,从而产生了自定义类型的可复用性和可维护性(即可可扩展性)。这是一个典型的开闭原则的体现。
接下来就是对UserType 接口定义的各方发的一个简单介绍。
1)isMutable:方法返回false时,Hibernate 不再对其进行脏数据检查
2)sqlTypes:UserType 接口映射的数据库字段类型,可以是多个字段,类型可以查看java.sql.Types 类型
3)returnedClass:自定义数据类型
4)nullSafeGet:将数据库数据转化为自定义类型
5)nullSafeSet:将自定义类型转换为数据库类型
6)disassemble:序列化。
7)assemble:反序列化。
8)replace:
9)equals:
10)deepCopy: