Hibernate JPA и Spring javax.persistence.TransactionRequiredException: транзакция не выполняется - PullRequest
24 голосов
/ 26 ноября 2009

Когда я звоню:

entityManager.flush()

Я получаю исключение, указанное в заголовке.

Я использую Hibernate JPA.

Ответы [ 13 ]

0 голосов
/ 12 августа 2010

В JBoss 4.0 и Hibernate я исправил эту проблему, добавив некоторые свойства менеджера транзакций в мое определение EntityManagerFactoryBean:

<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="dataSource" ref="xaDs" />
    <property name="jpaProperties">
        <props>
            <prop key="hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory
            </prop>
            <prop key="hibernate.transaction.manager_lookup_class">org.hibernate.transaction.JBossTransactionManagerLookup
            </prop>
        </props>
    </property>

Я нашел солутон в этой теме на форуме .

0 голосов
/ 23 июля 2010

То же самое происходило со мной при использовании весны 3.0.0 / 3.0.3. Данные сохранялись в MySQL из JUnit, но не с сервера Tomcat. После такой большой работы я отказался от RESOURCE_LOCAL для JTA.

Это сработало для меня http://erich.soomsam.net/2007/04/24/spring-jpa-and-jta-with-hibernate-and-jotm/ Он использует JTA и зависит от JOTM.

0 голосов
/ 22 марта 2010

Убедитесь, что ваша конфигурация пружины содержит следующую строку:

<tx:annotation-driven mode="aspectj" transaction-manager="transactionManager" />

mode может быть либо прокси , либо aspectj , и transaction-manager должен указывать, что ваш менеджер транзакций был.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...