Как использовать CurrentSessionContext / SpringSessionContext вместе с HibernateDaoSupport для перехвата вызовов getCurrentSession () - PullRequest
0 голосов
/ 12 января 2009

Я использую HibernateDaoSupport в Spring для интеграции Spring-Hibernate. Мне нужно перехватить все вызовы getCurrentSession, включить фильтр и установить значение параметра фильтра.

Hibernate поддерживает значения CurrentSessionContext для перехвата вызовов getCurrentSession. Spring предоставляет реализацию этого SpringSessionContext. Но при использовании HibernateDaoSupport у Spring есть собственный механизм SessionHolder, и метод getCurrentSession () никогда не вызывается и перехват не работает. Есть ли обходной путь для этого?

Ответы [ 2 ]

1 голос
/ 13 января 2009

Если вы используете AnnotationSessionFactoryBean или LocalSessionFactoryBean тогда вам также нужно установить это свойство:

<property name="exposeTransactionAwareSessionFactory" value="false" />

По умолчанию установлено значение true, а свойство hibernate.current_session_context_class игнорируется, если оно равно true.

1 голос
/ 12 января 2009

Звучит так, как будто вы предпочли бы реализовать Spring DAO на основе простого API Hibernate 3:

http://static.springframework.org/spring/docs/2.5.x/reference/orm.html#orm-hibernate-straight

...