【问题标题】:SpringData Neo4J: relationship between @NodeEntity and raw Neo4J entitySpring Data Neo4J:@NodeEntity 和原始 Neo4J 实体之间的关系
【发布时间】:2015-07-24 10:10:35
【问题描述】:

是否可以在 Spring Data Neo4J @NodeEntity 和原始 Neo4J 节点 (org.neo4j.graphdb.Node) 之间创建关系?如果是这样,这是如何完成的?在 SDN 中是如何引用的?

【问题讨论】:

    标签: neo4j spring-data-neo4j


    【解决方案1】:

    是的,您可以使用 Neo4jTemplate:

    1. 将实体转换为节点:

      节点 firstNode = (Node)neo4jTemplate.getPersistentState(entity);

    2. 使用您拥有的节点和您转换的节点创建关系:

      neo4jTemplate.createRelationshipBetween(firstNode, secondNode, relType, params);

    第二个选项是使用来自节点的数据查找实体并使用实体创建关系。

    【讨论】:

    • 非常感谢 - 在您的第二个选项中,如果节点不是在 Spring Data Neo4J 中创建的(即它没有 SDN 实体)会发生什么?在这种情况下,只有一个节点和一个实体——是否可以将节点引入 SDN,而不是将 SDN 实体作为节点引入原始 Neo4J?
    • 好吧,如果您使用 Neo4jTemplate 类或您自己的 GraphRepository 来查找实体(使用来自节点的数据作为识别该实体的一种方式),则将管理获取的实体。我假设该节点代表图形数据库中的现有节点,并且它具有 SDN 所需的所有元数据(通常是带有下划线的附加标签)。老实说,我不太明白你为什么坚持混合这些概念 - 如果我是你,我会尝试坚持一种访问方法,如果不是真的必要,尽量不要混合它们......
    • 谢谢 - 混合元素不是我的选择,这是因为一个单独的库 (GraphAware TimeTree) 使用原始 N4J,而我想使用 SDN。
    • 好的,现在我明白了。 :) 不仅仅是调查该库操作的结果,看看您是否没有错过任何 SDN 需要的元数据。
    猜你喜欢
    • 1970-01-01
    • 2020-04-12
    • 1970-01-01
    • 2011-12-26
    • 1970-01-01
    • 2013-09-23
    • 2013-06-08
    • 2018-11-23
    • 2015-07-19
    相关资源
    最近更新 更多