我使用Spring 4.1.6.RELEASE和Spring Boot 1.2.3.RELEASE。现在,我无法顺利地从Neo4j 2.1.7和SDN 3.2.2.RELEASE迁移到Neo4j 2.2.0和SDN 3.3.0.RELEASE
首先,Neo4jHelper缺少类…所以应该改用什么呢?
Neo4jHelper
另外,我的测试因以下异常而崩溃:
org.springframework.dao.InvalidDataAccessApiUsageException: nested exception is org.neo4j.graphdb.NotInTransactionException at org.springframework.data.neo4j.support.Neo4jExceptionTranslator.translateExceptionIfPossible(Neo4jExceptionTranslator.java:51) at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:59) at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:213) at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:147) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
但在以前的版本中,一切正常(我的DAO和服务均带有注释@Transactional)。
@Transactional
如何在我的Spring Boot应用程序中为Neo4j配置适当的TX管理器?
现在NullTransactionManager使用了,我认为这是问题的原因:
NullTransactionManager
2015-04-03 11:40:36 [main] INFO o.s.c.a.AnnotationConfigApplicationContext - Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@12db5286: startup date [Fri Apr 03 11:40:36 EEST 2015]; root of context hierarchy 2015-04-03 11:40:37 [main] INFO o.s.b.f.a.AutowiredAnnotationBeanPostProcessor - JSR-330 'javax.inject.Inject' annotation found and supported for autowiring 2015-04-03 11:40:38 [main] INFO o.s.t.jta.JtaTransactionManager - Using JTA UserTransaction: org.springframework.transaction.jta.UserTransactionAdapter@5909b7c2 2015-04-03 11:40:38 [main] INFO o.s.t.jta.JtaTransactionManager - Using JTA TransactionManager: org.springframework.data.neo4j.config.NullTransactionManager@16bc4d92
我做错了什么?
这是正在进行的工作,我在一个分支中拥有它,但由于Neo4j 2.2更改了许多内部API,所以尚未完成。
下一周左右继续关注。