http://blog.xebia.com/2009/11/09/understanding-and-writing-hibernate-user-types/
我正在尝试定义一个模仿的客户序列化UserType,这里引用并提供了XStreamUserType:
我的序列化程序输出一个可能写入Blob的bytearray。我打算这样做:
public class CustomSerUserType extends DirtyCheckableUserType {
protected SerA ser=F.g(SerA.class);
public Class<Object> returnedClass() {
return Object.class;
}
public int[] sqlTypes() {
return new int[] {Types.BLOB};
}
public Object nullSafeGet(ResultSet resultSet,String[] names,Object owner)
throws HibernateException,SQLException {
if()
}
public void nullSafeSet(PreparedStatement preparedStatement,Object value,int index)
throws HibernateException,SQLException {
BlobType.nullSafeSet(preparedStatement,ser.ser(value),index);
}
}
不幸的是,BlobType.nullSafeSet方法需要会话。那么如何定义一个可以访问servlet请求会话的UserType呢?
编辑:这里有一个问题的讨论,似乎没有解决方案:Best way to implement a Hibernate UserType after deprecations?
答案 0 :(得分:0)
这在UserType界面的4.1 API中得到解决。
http://docs.jboss.org/hibernate/orm/4.1/javadocs/
UserType的方法签名将SessionImplementor传递给nullSafeGet并进行设置。
额外提示:请务必查看当前的Javadoc。