Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot 在neo4j中创建具有唯一属性(ID除外)的节点_Spring Boot_Neo4j_Spring Data Neo4j 4 - Fatal编程技术网

Spring boot 在neo4j中创建具有唯一属性(ID除外)的节点

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;

我的项目基于SpringBoot+Neo4j。 我正在尝试创建一个新的特权节点,但不想复制特权

现在我有了一个UserRole节点,它保存着
列表
。现在 我希望在创建特权时,首先检查是否存在具有相同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;
      }
    }