2016-03-12 2 views
0

Можно ли определить уникальный тип отношения между двумя узлами в SDN?Уникальность отношения SDN

Я хочу иметь только одну связи этого типа между узлом запуска и конечным узлом, что-то вроде:

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

    @StartNode 
    private NodeTypeOne source; 

    @EndNode 
    private NodeTypeTwo target; 
} 
+0

Можете ли вы дать пример использования? Я предполагаю, что если вы хотите только отношения одного типа между двумя узлами, вы просто не реализуете какую-либо логику, которая создает другие отношения. Перед созданием отношения этого типа вы можете проверить, существует ли он уже. – geld0r

+0

Извините, слово вопроса было неясно. Я хочу только одно отношение этого типа. – kpentchev

+0

Какая версия SDN? – Luanne

ответ

1

Если вы используете SDN 4, нет никаких @Unique аннотаций доступны, вы должны управляйте этим самостоятельно в коде приложения. Если у вас нет свойств в отношении, тогда вы должны использовать просто @Relationship, а не объект отношения.

Текущее поведение SDN 4 для отношений является:

Spring Data Neo4j обеспечивает по умолчанию, что есть только один отношения данного типа между любыми двумя данными сущностями. Исключением является это правило, когда связь задается либо как ИСПОЛЬЗУЕТСЯ ИЛИ ВХОДИТ между двумя объектами того же типа. В этом случае между двумя объектами возможно иметь два отношения заданного типа , одно отношение в любом направлении.

Для отношений субъектов,

Несколько субъектов отношений, которые имеют то же значение свойств и относятся одни и те же узлы неотличимы друг от друга и являются представлена ​​в виде единое отношения с SDN 4.

Тем не менее, ваше приложение должно добавить достаточные проверки для этого и не полагаться на управление уникальностью по SDN, поскольку будущие версии могут улучшить/изменить поведение.

Смежные вопросы