您的位置:首页 > 编程语言

利用Hibernate自定义UserType简化编程

2015-02-24 00:00 537 查看
摘要: 自定义UserType是Hibernate一项强大的扩展特性,灵活的使用自定义UserType可以极大的简化编码,使得代码更加优雅的面向对象,也可以简化数据库设计。

#1. 创建自定义UserType
Hibernate的自定义UserType用于扩展自定义类型的数据存取机制,通过该机制可以把Entity中的任意类型的属性转换成自定义的格式存入数据库,在读取数据时又可以按照自定义的格式还原成自定义的类型。例如:

对象转换成Json格式存取。参考 JsonUserType.java

对象列表转换成Json格式存取。参考 JsonListUserType.java

字符串数组转换成逗号分割的字符串存取。参考 ArrayUserType.java

自定义位编码类型转换成字符串存取。参考 BitCodeUserType.java

#2. 注册自定义UserType
有了这些自定义的UserType后,存取的转换变成了透明的,只需要在Entity对应的属性上用注解来声明引用这些自定义类型即可。但是如果每次使用自定义类型时需要指定完整的类名,又有点繁琐了。可以在放置自定义UserType类的包下建一个 pakcage-info.java来声明这些UserType,从而简化注解。

#3. 使用自定义UserType
声明了这些自定义UserType以后,使用时就变得简单了:

@Entity
@Table(name = "Tmp_Company")
public class Company extends UuidEntity {
...
@Type(type = "Json")
private CompanyExtendInfo extendInfo;
...
}

只需要一行简单的注解就可以将一个自定义类型的对象转换成Json格式存入数据库,从数据库取出时又自动转换成自定义类型的对象。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: