【问题标题】:SDN relationship uniquenessSDN关系唯一性
【发布时间】:2016-03-12 17:01:55
【问题描述】:

是否可以在SDN中定义两个节点之间唯一的关系类型?

我希望在开始节点和结束节点之间只有一个这种类型的关系,例如:

@Unique
@RelationshipEntity(type="TYPE")
public class Relation {

    @StartNode
    private NodeTypeOne source;

    @EndNode
    private NodeTypeTwo target;
}

【问题讨论】:

  • 你能给出一个用例吗?我假设如果您只想要两个节点之间的一种类型的关系,您就不会实现任何创建其他关系的逻辑。在创建这种类型的关系之前,您可以检查它是否已经存在。
  • 对不起,问题的措辞不清楚。我只想要一个这种类型的关系。
  • 哪个版本的SDN?

标签: neo4j spring-data spring-data-neo4j


【解决方案1】:

如果您使用的是 SDN 4,则没有可用的 @Unique 注解,您必须在应用程序代码中自行管理。如果您没有关系上的属性,那么您应该使用简单的@Relationship 而不是关系实体。

SDN 4 对关系的当前行为是:

Spring Data Neo4j 默认确保只有一个 任何两个给定实体之间给定类型的关系。这 此规则的例外是当关系被指定为 相同类型的两个实体之间的输出或输入。在这 在这种情况下,可能有两个给定类型的关系 在两个实体之间,一个方向的关系。

对于关系实体,

具有相同属性值的多个关系实体和 关联相同的节点彼此无法区分并且是 由 SDN 4 表示为单个关系。

不过,您的应用程序应该为这些添加足够的检查,而不是依赖 SDN 的唯一性管理,因为未来的版本可能会增强/改变行为。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-29
    • 1970-01-01
    相关资源
    最近更新 更多