java - neo4j 与 spring 数据的重复关系

标签 java neo4j spring-data-neo4j-4 neo4j-ogm

我正在使用 Neo4j 3.0.0 和 spring-data-neo4j(版本 4.1.1.RELEASE)和 neo4j-ogm-bolt-driver。我想在两个节点之间多次创建相同的关系(相同类型)。

enter image description here

通过GraphRepository接口(interface)多次持久化@RelationshipEntity只会创建一次关系。

经过对此主题的一些调查,我找到了此处描述的解决方法:Cannot add more than one relationship between nodes in neo4j但在我的 OGM 版本中,createRelationshipBetween 方法似乎不再存在于 Neo4jTemplate 中。

OGM 是否有任何可用的解决方案,或者我是否必须使用密码查询执行重复关系的创建?

我需要在两个节点之间多次具有相同的关系类型,因此添加一些其他关系类型对我来说不是一个选择。

最佳答案

SDN 4.1/Neo4j OGM does not allow for multiple relations of the same type between two nodes 。该规则的异常(exception)情况是,当您想要维护 2 种关系时(一种是传出关系,一种是传入关系),此时您需要指定 OUTGOING 和 INCOMING 方向。

如果将关系建模为关系实体,则可以拥有多个关系 - 关系实体必须至少具有一个属性,并且至少一个属性的值必须与两个节点之间的其他关系不同。您可以考虑使用时间戳作为属性。

自定义 Cypher 可以做到这一点,但在加载实体并将其持久化回具有多个关系的图表时很可能会出现问题。

关于java - neo4j 与 spring 数据的重复关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37275766/

相关文章:

java - Neo4j:死锁内存泄漏

Neo4j SDN 4 GraphId 性能与索引

java - 从 Java Access 数据库的时间很长

java - 在 JSF 应用程序中使用 Spring AOP

java - spring webflux - websocketclient 线程未终止

java - Bufferedreader 关闭后,Inputstream 也应该关闭吗?

neo4j - Cypher:模式的哪些部分可以绑定(bind)到变量?

graph - 使用 Neo4J 对有向树进行通用遍历

java - Neo4J SDN 4 无法保存

java - Spring data Neo4j 获取关系