Весна сочетается с зимней спячкой
Я сталкиваюсь с проблемой: когда я использую hibernate без Spring, я всегда пишу следующую конфигурацию в hibernate.cfg.xml:
<property name="current_session_context_class">thread</property>
это связывает видение с потоком. Но когда я использую hibernate вместе с Spring, я не знаю, как реализовать ту же конфигурацию, я также записываю ее в applicationContext.xml, но она не работает. бросить исключение:
org.hibernate.HibernateException: ни один Hibernate Session не привязан к потоку, и конфигурация не позволяет создавать нетранзакционный сеанс здесь
На самом деле, я просто хочу привязать сессию к потоку, затем я могу использовать метод getcurrentSession из sessionfactory. Кто-то сталкивался с той же проблемой, что и я, как ее решить. Большое спасибо
1 ответ
Попробуйте добавить @Transactional
аннотации на ваш метод, который использует Hibernate сессии.
Кажется, что ваши методы нуждаются в транзакции.
Существует множество способов настроить использование транзакций в Spring.
Ниже один из них.
Просто фрагмент, так что вы должны использовать этот код по-своему.
<tx:annotation-driven/>
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"
p:sessionFactory-ref="sessionFactory" />
См. SpringMVC 3.2 hibernate docs для получения дополнительной информации.