2016-09-01 3 views
1


Я работаю над загрузкой Spring + Neo4j & Я новичок в graphDb. Проблема, с которой я сталкиваюсь, описана ниже,
Я хочу создать уникальный (Priviledge) узел, указывающий (по отношению) к UserRole Node.Как проверить, существует ли Node neo4j перед созданием нового

В изображении ниже вы можете увидеть дубликат (Priviledge) узел создается enter image description here

как я могу написать собственный шифра, чтобы проверить Priviledge при наличии перед сохранением нового один

UserRole Домен: @NodeEntity общественного класса UserRole {

public UserRole(User user, Role role) { 
    this.user = user; 
    this.role = role; 
} 

/** 
For Jackson Parsing 
**/ 
public UserRole() { 
} 

@GraphId 
private Long id; 

public UserRole(User user, Role role, Unit unit) { 
    this.user = user; 
    this.role = role; 
    this.unit = unit; 
} 



public long getId() { 
    return id; 
} 

@Relationship(type = HAS_USERROLE,direction = "OUTGOING") 
User user; 
public User getUser() { 
    return user; 
} 

@Relationship (type = HAS_ROLE_OF,direction = "OUTGOING") 
Role role; 
public Role getRole() { 
    return role; 
} 


@Relationship(type = "WORKS_IN",direction = "OUTGOING") 
Unit unit; 

public Unit getUnit() { 
    return unit; 
} 

public void setUnit(Unit unit) { 
    this.unit = unit; 
} 

@Relationship(type = "HAS_PRIVILEDGE", direction = "OUTGOING") 
List<Priviledge> priviledgeList; 

public List<Priviledge> getPriviledgeList() { 
    return priviledgeList; 
} 

public void setPriviledgeList(List<Priviledge> priviledgeList) { 
    this.priviledgeList = priviledgeList; 
} 
} 

Priviledge Домен:

public class Priviledge { 

@GraphId 
Long id; 


private String priviledge; 

private String priviledgeOn; 
private Long priviledgeOnId; 

public Priviledge() { 
} 

public Priviledge(String priviledge, String priviledgeOn) { 
    this.priviledge = priviledge; 
    this.priviledgeOn = priviledgeOn; 
} 

public Long getId() { 
    return id; 
} 

public void setId(Long id) { 
    this.id = id; 
} 

public String getPriviledge() { 
    return priviledge; 
} 

public void setPriviledge(String priviledge) { 
    this.priviledge = priviledge; 
} 

public String getPriviledgeOn() { 
    return priviledgeOn; 
} 

public void setPriviledgeOn(String priviledgeOn) { 
    this.priviledgeOn = priviledgeOn; 
} 

public Long getPriviledgeOnId() { 
    return priviledgeOnId; 
} 

    public void setPriviledgeOnId(Long priviledgeOnId) { 
    this.priviledgeOnId = priviledgeOnId; 
    } 
} 
+0

Не могли бы вы отправить код класса сущности, который дублируется? Используете ли вы «GraphRepository»? –

+0

@MarekJeszka да, я использую GraphRepository, –

+0

@MarekJeszka добавил класс сущности –

ответ

0

Как можно найти в ответе на этот question, чтобы обновить (а не создавать новый экземпляр), вы должны использовать идентификатор узла, при вызове метода save.

В качестве альтернативы (как указано в комментариях к указанному вопросу), вы должны создать собственный запрос на основе этого documentation.

+0

благодарю вас за ваше возвращение, но я надеюсь, что вам поможет какой-то код –

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