У меня проблема с транзакциями в Spring 3.0.5. В моем случае я получаю так называемое исключение «Сеанс Hibernate не привязан к потоку, а конфигурация не позволяет создавать нетранзакционный сеанс здесь» ... Я уже все перепробовал. Я вижу в своем журнале, что транзакционные сервисы обнаруживаются и регистрируются как бины Spring, и я также вижу в журналах, что они проксируются и связаны с базовыми перехватчиками транзакций Spring. (Советую) Когда я запускаю свое приложение Spring MVC, мой контроллер будет вызывать службу ...... :-(, но перехватчики транзакций не срабатывают. (??) Я ожидаю, что мой прокси-сервер Spring откроет сеанс и запустит транзакция перед вызовом моего метода целевой службы. Так как этого не происходит, я получаю вышеуказанное исключение. Я почти два дня занимался этой проблемой. Перепробовал все, что нашел в интернете ... но тщетно.
У меня многоуровневая архитектура: презентация (springmvc), служба (аннотированная транзакция), доступ к данным (классическая сессия Spring / Hibernate). Мои объекты модели помечены с помощью jpa (javax.persistence. *). Мои весенние контекстные конфигурационные файлы разделены в appContext.xml, appContext-service.xml и appContext-dao.xml. Я определил свой Spring LocalSessionFactoryBean, Datasource и TransactionManager (HibernateTransactionManager) в appContext-dao.xml. Я поместил в appContext-service.xml, где находятся мои реализации службы. Во все мои конфигурационные файлы, которые я включил, и для обнаружения моих компонентов с помощью аннотаций Controller, Service и Repository.
Я ценю любую помощь.