从UserType上下文获取LobHelper

时间:2015-04-10 14:13:54

标签: hibernate hibernate-4.x usertype

我正在将旧的Hibernate 2.x代码迁移到4.x.其中一个类是byte []和Blob之间的UserType,代码执行如下操作:

public void nullSafeSet(...) {
    ...
    Blob blob = Hibernate.createBlob(bytes);
    ...
}

在Hibernate 4.x中,Hibernate.createBlob不再存在,所以我需要使用session.getLobHelper().createBlob(bytes),但我不知道如何从Session中获取LobHelper,因为我没有拥有Session,只有SessionImplementor

public void nullSafeSet(PreparedStatement st, Object value, int index, SessionImplementor implementor) { ...

1 个答案:

答案 0 :(得分:0)

我发现了ContextualLobCreator(LobCreationContext)类,SessionImplementor实现了LobCreationContext,所以我基本上转换了

Blob blob = Hibernate.createBlob((byte[]) value);

Blob blob = new ContextualLobCreator(implementor).createBlob((byte[]) value);