Spring-Data-Neo4j:如何使用graphaware neo4j-uuid插件生成的uuid自动填充对象域?

时间:2018-06-07 09:17:12

标签: java spring neo4j neo4j-ogm graphaware

我已将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 

你能否分享一下你如何解决这个问题? ?欢迎提出任何建议。

0 个答案:

没有答案