0

http://blog.xebia.com/2009/11/09/understanding-and-writing-hibernate-user-types/

我正在尝试定义一个模仿的客户序列化 UserType,这里引用并提供了 XStreamUserType:

http://code.google.com/p/aphillips/source/browse/commons-hibernate-usertype/trunk/src/main/java/com/qrmedia/commons/persistence/hibernate/usertype/XStreamableUserType.java

我的序列化器输出一个字节数组,大概应该写入一个 Blob。我打算这样做:

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?

4

1 回答 1

0

这在 UserType 接口中的 4.1 API 中得到解决。

http://docs.jboss.org/hibernate/orm/4.1/javadocs/

UserType 的方法签名将 SessionImplementor 传递给 nullSafeGet 并设置。

额外提示:确保查看当前的 Javadocs。

于 2012-04-09T23:32:30.593 回答