【发布时间】:2015-04-29 05:42:49
【问题描述】:
我有一个项目使用 spring-data-neo4j 和带有 Hibernate 的 spring 数据。 Neo4j 和 Hibernate 会持久化不同的实体,因此不需要 spring-data-neo4j-cross-store。
我正在尝试使用 org.springframework.data.transaction.ChainedTransactionManager 类作为我的事务管理器,但是每当我尝试为 Hibernate 使用事务时,我都会得到一个 javax。 persistence.TransactionRequiredException.
相关applicationContext.xml:
<context:annotation-config />
<context:spring-configured/>
<context:component-scan base-package="my.package" />
<bean id="entityManagerFactoryJpa"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="persistenceUnitName" value="my-persistence-unit-jpa" />
</bean>
<bean id="jpaTransactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactoryJpa"/>
</bean>
<bean id="jtaTransactionManager" class="org.springframework.data.neo4j.config.JtaTransactionManagerFactoryBean">
<constructor-arg ref="graphDatabaseService"/>
</bean>
<bean id="transactionManager" class="org.springframework.data.transaction.ChainedTransactionManager">
<constructor-arg>
<list>
<ref bean="jpaTransactionManager"/>
<ref bean="jtaTransactionManager"/>
</list>
</constructor-arg>
</bean>
<neo4j:repositories base-package="my.package" />
<neo4j:config base-package="my.package" graphDatabaseService="graphDatabaseService" />
<bean id="graphDatabaseService"
class="org.springframework.data.neo4j.support.GraphDatabaseServiceFactoryBean"
destroy-method="shutdown" scope="singleton">
<constructor-arg value="target/graph.db" />
<constructor-arg>
<map>
<entry key="enable_remote_shell" value="false" />
</map>
</constructor-arg>
</bean>
<tx:annotation-driven transaction-manager="transactionManager" />
每当任何 Hibernate 事务尝试执行时,我都会收到此错误:
javax.persistence.TransactionRequiredException: 没有事务在 进展
如何在没有这些事务错误的情况下将 spring-data-neo4j 与其他 Spring 项目一起使用?
【问题讨论】:
标签: hibernate spring-data spring-data-neo4j