我正在将旧的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) { ...
答案 0 :(得分:0)
我发现了ContextualLobCreator(LobCreationContext)
类,SessionImplementor
实现了LobCreationContext
,所以我基本上转换了
Blob blob = Hibernate.createBlob((byte[]) value);
到
Blob blob = new ContextualLobCreator(implementor).createBlob((byte[]) value);