利用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格式存入数据库,从数据库取出时又自动转换成自定义类型的对象。

你可能感兴趣的:(利用Hibernate自定义UserType简化编程)