Spring boot 在neo4j中创建具有唯一属性(ID除外)的节点
我的项目基于SpringBoot+Neo4j。 我正在尝试创建一个新的特权节点,但不想复制特权 现在我有了一个UserRole节点,它保存着Spring boot 在neo4j中创建具有唯一属性(ID除外)的节点,spring-boot,neo4j,spring-data-neo4j-4,Spring Boot,Neo4j,Spring Data Neo4j 4,我的项目基于SpringBoot+Neo4j。 我正在尝试创建一个新的特权节点,但不想复制特权 现在我有了一个UserRole节点,它保存着列表。现在 我希望在创建特权时,首先检查是否存在具有相同PrivilegeneName属性的另一个特权 下面是我的域类 用户角色类 @NodeEntity public class UserRole { public UserRole(User user, Role role) { this.user = user;
列表
。现在
我希望在创建特权时,首先检查是否存在具有相同PrivilegeneName属性的另一个特权
下面是我的域类
用户角色类
@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;
}
}
我正在使用GraphRespository保存实体。目前唯一的方法是先查询现有的特权,如果没有,则创建它,如果有,则使用它。还添加了一个唯一的约束以确保安全
在未来的版本中,将支持此用例。感谢您的见解,但何处需要编写代码来检查特权是否已经存在,因为UserRole存储库正在用于创建priviledge。在创建特权并将其添加到UserRole之前,您是否可以共享此类示例?
@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;
}
}