SDN关系唯一性

时间:2016-03-12 17:01:56

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

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

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

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

    @StartNode
    private NodeTypeOne source;

    @EndNode
    private NodeTypeTwo target;
}

1 个答案:

答案 0 :(得分:1)

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

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

  

Spring Data Neo4j默认确保只有一个   任何两个给定实体之间给定类型的关系。该   此规则的例外情况是将关系指定为其中之一   两个相同类型的实体之间的进行或进入。在这   在这种情况下,可以有两种给定类型的关系   在两个实体之间,两个方向都有一个关系。

对于关系实体,

  

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

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