我在我的应用程序中使用 spring-data-neo4j 作为我的 neo4j 数据库,我希望在我的服务层中有事务API 但似乎 @transaction 无效。
服务层:
@Transactional('neo4jTransactionManager')
def savePerson(){
Person person=new Person()
person.setName("prabh")
person.setDistance(100)
PersonRepository.save(person)
int i=10/0;
}
配置:
<context:component-scan base-package="neo4j"></context:component-scan>
<bean id="graphDatabaseService"
class="org.springframework.data.neo4j.rest.SpringRestGraphDatabase">
<constructor-arg value="http://localhost:7474/db/data" />
</bean>
<neo4j:config graphDatabaseService="graphDatabaseService"
base-package="neo4j" />
<neo4j:repositories base-package="neo4j" />
<bean id="neo4jTransactionManager"
class="org.springframework.transaction.jta.JtaTransactionManager">
<property name="transactionManager">
<bean class="org.neo4j.kernel.impl.transaction.SpringTransactionManager">
<constructor-arg ref="graphDatabaseService" />
</bean>
</property>
<property name="userTransaction">
<bean class="org.neo4j.kernel.impl.transaction.UserTransactionImpl">
<constructor-arg ref="graphDatabaseService" />
</bean>
</property>
</bean>
<tx:annotation-driven mode="aspectj"
transaction-manager="neo4jTransactionManager" />
</beans>
我正在使用 neo4j 数据库的休息服务器。
答案 0 :(得分:0)
文档说的是,对于远程访问,由于Neo4j的REST API过去没有通过网络暴露交易,因此没有交易性
在下一个里程碑(以及当前的3.3.0.BUILD-SNAPSHOT)构建中,使用新的远程处理集成,它通过线路公开事务,并且比现有事务快得多。