2015-04-10 3 views
0

Я переношу старый Hibernate 2.x на 4.x. Одним из классов является UserType между байт [] и Blob, а код делает что-то вроде этого:Получить LobHelper из контекста UserType

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

В спящем 4.x, Hibernate.createBlob больше не существует, так что мне нужно использовать session.getLobHelper().createBlob(bytes), но Я не знаю, как получить LobHelper от сессии, так как я не имею Session, только SessionImplementor:

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

ответ

0

Я узнал о ContextualLobCreator(LobCreationContext) классе, и что SessionImplementor реализует LobCreationContext, так что я в основном конвертировано

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

в

Blob blob = new ContextualLobCreator(implementor).createBlob((byte[]) value); 
Смежные вопросы