用户自定义类型。
把从数据库取出来的数据,处理一下再用,保存数据的时候把POJO里的数据处理一下在保存进去。
org.hibernate.usertype.UserType
UserType接口:
- assemble(Serializable cached, Object owner) 序列化
- disassemble(Object value) 反序列化
- deepCopy(Object value) 拷贝对象
- equals(Object x, Object y),hashCode(Object x) 对象的比较,主要用来 进行脏数据的检查
- isMutable() :这个对象是否是可变的
- nullSafeGet(ResultSet rs, String[] names, Object owner) :实现从 resultset中把对象转化为自己的数据类型
- nullSafeSet(PreparedStatement st, Object value, int index) :实现把自己的类型转化为数据库的类型,然后持久化,持久化先用 deepCopy拷贝一个对象,然后比较这个对象是否与session中的对象状态一样,如果不一样就写入数据库更新,如果一样,直接返回。
- replace(Object original, Object target, Object owner) 对象的替换。
- sqlTypes() :返回数据库对应的类型
- returnedClass() :返回自己的类型。
1.实现此接口。
2.pojo:转换后的类中属性改为:list
3.配置文件:<type="mytype2.EmailType">