Java Neo4j无法回滚具有两段关系的测试数据
通过Spring数据测试Neo4j节点和关系持久性,解决了以下问题。当我设置两段rel时,比如Java Neo4j无法回滚具有两段关系的测试数据,java,neo4j,spring-data,spring-data-neo4j-4,neo4j-ogm,Java,Neo4j,Spring Data,Spring Data Neo4j 4,Neo4j Ogm,通过Spring数据测试Neo4j节点和关系持久性,解决了以下问题。当我设置两段rel时,比如A->B->C,然后尝试通过逐个保存来持久化所有三个实体,一切都会正常进行,直到测试执行后SDN4J开始事务回滚 正如我在调试日志中所发现的,持久化节点和rel可以正常进行,但当它开始回滚时,删除rel失败,出现以下异常: org.neo4j.ogm.exception.CypherException: Error executing Cypher "Neo.ClientError.Statement.
A->B->C
,然后尝试通过逐个保存来持久化所有三个实体,一切都会正常进行,直到测试执行后SDN4J开始事务回滚
正如我在调试日志中所发现的,持久化节点和rel可以正常进行,但当它开始回滚时,删除rel失败,出现以下异常:
org.neo4j.ogm.exception.CypherException: Error executing Cypher "Neo.ClientError.Statement.EntityNotFound"; Code: Neo.ClientError.Statement.EntityNotFound; Description: Relationship with id 1124
at org.neo4j.ogm.drivers.http.response.AbstractHttpResponse.initialise(AbstractHttpResponse.java:83) ~[neo4j-ogm-http-driver-2.0.4.jar:na]
at org.neo4j.ogm.drivers.http.response.AbstractHttpResponse.<init>(AbstractHttpResponse.java:74) ~[neo4j-ogm-http-driver-2.0.4.jar:na]
at org.neo4j.ogm.drivers.http.response.RowModelResponse.<init>(RowModelResponse.java:31) ~[neo4j-ogm-http-driver-2.0.4.jar:na]
at org.neo4j.ogm.drivers.http.request.HttpRequest.execute(HttpRequest.java:123) ~[neo4j-ogm-http-driver-2.0.4.jar:na]
at org.neo4j.ogm.session.request.RequestExecutor.executeSave(RequestExecutor.java:107) ~[neo4j-ogm-core-2.0.4.jar:na]
at org.neo4j.ogm.session.delegates.SaveDelegate.save(SaveDelegate.java:75) ~[neo4j-ogm-core-2.0.4.jar:na]
at org.neo4j.ogm.session.delegates.SaveDelegate.save(SaveDelegate.java:44) ~[neo4j-ogm-core-2.0.4.jar:na]
at org.neo4j.ogm.session.Neo4jSession.save(Neo4jSession.java:425) ~[neo4j-ogm-core-2.0.4.jar:na]
at org.springframework.data.neo4j.template.Neo4jTemplate.save(Neo4jTemplate.java:203) ~[spring-data-neo4j-4.1.2.RELEASE.jar:na]
...
您能建议在哪里寻找解决方案/一些W/A,或指出代码中的问题吗
请告诉我这里是否有其他信息
更新:
螺栓驱动器也出现了这个问题。我将创建一个独立于项目的案例,以检查问题是否存在如需进一步调查,是否可以发送样本?jasper@graphaware.com@Jasperbluse我在这个地址上发了一封邮件,请告诉我你需要哪些数据才能复制和调查这个问题。如果你想进一步调查,你能发送一个样本吗?jasper@graphaware.com@Jasperbluse我已经在这个地址上发了一封邮件,请告诉我您需要哪些数据,以便能够复制和调查这个问题
@SpringBootTest
@RunWith(SpringJUnit4ClassRunner.class)
public class Neo4jRelsPersistenceTest {
@Autowired
EntityDao entityDao;
@Test
public void testTwoLegRelationship() throws Exception {
Entity e1 = new Entity();
Entity e2 = new Entity();
Entity e3 = new Entity();
AssociateRelationship rel1 = new AssociateRelationship();
rel1.setEntityFrom(e1);
rel1.setEntityTo(e2);
e1.setAssociateOf(new HashSet() {{add(rel1);}});
AssociateRelationship rel2 = new AssociateRelationship();
rel2.setEntityFrom(e3);
rel2.setEntityTo(e1); // if change to 'setEntityTo(e2)', it will work
e3.setAssociateOf(new HashSet() {{add(rel2);}});
entityDao.saveEntities(Arrays.asList(e1, e2, e3));
}
}