事务不在spring数据neo4j中工作

时间:2014-10-13 05:31:36

标签: java transactions spring-data-neo4j

我在我的应用程序中使用 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 数据库的休息服务器。

1 个答案:

答案 0 :(得分:0)

文档说的是,对于远程访问,由于Neo4j的REST API过去没有通过网络暴露交易,因此没有交易性

在下一个里程碑(以及当前的3.3.0.BUILD-SNAPSHOT)构建中,使用新的远程处理集成,它通过线路公开事务,并且比现有事务快得多。