Mein Projekt basiert auf Spring boot + Neo4j. Ich versuche, einen neuen Berechtigungsknoten zu erstellen, möchte aber Privilege nicht duplizieren.Erstellen eines Knotens in neo4j mit einer anderen eindeutigen Eigenschaft als ID
Jetzt habe ich einen UserRole-Knoten, der List<Privilege>
gilt. Jetzt Ich möchte, dass, wenn ich ein Privileg erstellen, es zuerst prüfen, ist ein anderes Privileg existiert mit derselben Eigenschaft privilegName.
Unten sind meine Domain-Klassen.
Userrole Klasse
@NodeEntity
public class 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;
}
}
Berechtigungsklasse
@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;
}
}
ich GraphRepository bin mit Entities zu speichern.
Vielen Dank für Ihren Einblick, aber wo ist es notwendig, den Code zu schreiben, um zu prüfen, ob Privileg bereits existiert, , weil UserRole Repository verwendet wird, um Privileg zu erstellen. Können Sie ein Beispiel dieser Art teilen? –
Bevor Sie ein Privileg erstellen und es zu UserRole hinzufügen? – Luanne
lassen Sie mich überprüfen, wie es funktionieren wird. –