我正在研究 spring-data 和 neo4j,但遇到了事务问题。
这是我的弹簧配置:
<context:spring-configured/>
<context:annotation-config/>
<context:component-scan base-package="fr.simple.nosqltest" />
<neo4j:repositories base-package="fr.simple.nosqltest"/>
<!-- Neo4j configuration (creates Neo4jTemplate) -->
<neo4j:config graphDatabaseService="graphDatabaseService" />
<!-- For unit tests :
With these two following lines (uncomment them to test), datas are well recorded in directory database
and rollback on failed transaction works -->
<!-- <neo4j:config storeDirectory="target/neo4j-db"/> -->
<!-- <tx:annotation-driven mode="proxy"/> -->
<!-- But in a real world, I would like to use a Neo4J server. -->
<!-- Rollbacks are not working with this following configuration : -->
<bean id="graphDatabaseService"
class="org.springframework.data.neo4j.rest.SpringRestGraphDatabase">
<constructor-arg value="http://localhost:7474/db/data/" />
</bean>
<tx:annotation-driven mode="aspectj" transaction-manager="transactionManager"/>
正如我在 spring 配置文件的评论中所说,当我运行单元测试时,事务运行良好:
neo4j:config storeDirectory="target/neo4j-db"
但不是当我尝试运行相同的代码而是使用真正的 neo4j 服务器时。我尝试了很多关于如何编写tx:annotation-driven
标签的组合,但没有任何效果。我在互联网上找不到解决方案,但我发现的所有示例都可以在没有 neo4j 服务器的情况下使用。
你能帮我用这个框架配置事务吗?我在 github 上发布了我的代码:https ://github.com/clement94/spring-neo4j-test