我已将neo4j服务器配置为使用graphaware neo4j-uuid生成器为数据库中创建的每个节点添加唯一ID。我已经知道uuid
仅在下一个事务开始时可用,我想用生成的唯一ID自动填充我的对象。
假设您拥有此类域名,您可以将节点连接到数十万个其他节点。
class NodeA{
...
@RelationshipEntity(type="FATHER_OF", direction=Relationship.OUTGOING)
private Set<NodeB> childs;
@RelationshipEntity(type="FRIEND_OF")
private NodeA friend;
...getters/setters
}
您可以在同一时间为他们的孩子添加/更新NodeA
。如果NodeA
已连接到数十万个NodeB
,则由于性能问题,您无法通过指定深度值来重新加载它。试图遍历所有新注册的孩子将解决这个案例的问题(很容易)。但是当你遇到类型nodeB
的节点也可以连接到其他节点的情况时,事情就会变得很暗。
到目前为止,我在事务完成后再次加载节点,以便在我的对象中填充uuid,并且由于性能问题,我想避免使用此方法。
我希望生成的uuid
能够自动使用,并避免开发人员在事务完成后重新加载节点。
我正在考虑neo4j ogm persistence events,但我不知道我是否想要走正确的道路。
配置:
Neo4j enterprise 3.4.1
graphaware-server-community-all 3.1.3.47
neo4j-uuid 3.1.3.45.14
spring-data-neo4j 4.2.1
neo4j-ogm 2.1
neo4j-bolt-2.1.1
你能否分享一下你如何解决这个问题? ?欢迎提出任何建议。