У меня есть метод a в классе A, который вызывает метод b в классе B
@Service
public class A {
private B classB;
...
@Async
@Transactional
public void a() {
classB.b();
}
}
@Service
public class B {
...
@Transactional
public void b() {
// load some nodes from neo4j db by GraphRepository
}
}
это моя конфигурация neo4j
@Override
@Bean
@Scope(value = "prototype", proxyMode = ScopedProxyMode.TARGET_CLASS)
public Session getSession() throws Exception {
return super.getSession();
}
Согласно аннотации Async, я установил значение области для prototype, но это все еще не работает.
org.neo4j.ogm.exception.TransactionManagerException: транзакция не является текущей для этого потока на org.neo4j.ogm.session.transaction.DefaultTransactionManager.commit (DefaultTransactionManager.java:100) ~ [neo4j-ogm-core-2.0.1. jar :?] на org.neo4j.ogm.transaction.AbstractTransaction.commit (AbstractTransaction.java:83) ~ [neo4j-ogm-api-2.0.2.jar :?] на org.neo4j.ogm.drivers.bolt. transaction.BoltTransaction.commit (BoltTransaction.java:80) ~ [neo4j-ogm-bolt-driver-2.0.2.jar :?] в org.springframework.data.neo4j.transaction.Neo4jTransactionManager.commit (Neo4jTransactionManager.java:50 ) ~ [spring-data-neo4j-4.1.1.RELEASE.jar :?] в org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning (TransactionAspectSupport.java:485) ~ [spring-tx-4.2.5.RELEASE. jar: 4.2.5.RELEASE] в org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction (TransactionAspectSupport.java:291) [ spring-tx-4.2.5.RELEASE.jar: 4.2.5.RELEASE] в org.springframework.transaction.interceptor.TransactionInterceptor.invoke (TransactionInterceptor.java:96) ~ [spring-tx-4.2.5.RELEASE.jar : 4.2.5.RELEASE] в org.springframework.aop.framework.ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java:179) ~ [spring-aop-4.2.5.RELEASE.jar: 4.2.5.RELEASE] в orwork.springframe .aop.framework.CglibAopProxy $ DynamicAdvisedInterceptor.intercept (CglibAopProxy.java:655) ~ [spring-aop-4.2.5.RELEASE.jar: 4.2.5.RELEASE]
Я использовал ту же технику с другим проектом с SDN 4.0.0, и это работает.
Может быть ошибка в SDN 4.1.1 и Ogm 2.0.3?