Мы переходим с Spring 3 на Spring 4 вместе с представлением EntityManager. Ранее в коде мы использовали OpenSessionInViewInterceptor
в качестве перехватчика в bean-компоненте с urlmapping. Это работало нормально, прикрепляя сеанс к каждому запросу потока из сети.
Сейчас я использую OpenEntityManagerInViewInterceptor
, но EntityManager
не присоединен к текущей теме, и получаю исключение
Нет EntityManager с фактической транзакцией, доступной для текущего потока - не может надежно обработать постоянный вызов
Если я поставлю @Transactional
над моим методом DAO, он будет работать нормально, но мне придется делать это во многих местах, поэтому я хочу избежать этого и попытаться исправить это с помощью OpenEntityManagerInViewInterceptor
. Пожалуйста, дайте мне знать, как я могу заставить его работать.
applicationContext.xml -
<bean id="openEntityManagerInViewInterceptor" class="org.springframework.orm.jpa.support.OpenEntityManagerInViewInterceptor">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
dispatcher-servlet.xml -
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/EditHelp/*.do">EditHelpController</prop>
</props>
</property>
<property name="interceptors">
<list>
<ref bean="openEntityManagerInViewInterceptor" />
</list>
</property>
</bean>
Любая помощь будет оценена. Спасибо.