当前位置: 首页 > 知识库问答 >
问题:

如何在创建新节点之前检查节点是否已存在neo4j

尤飞尘
2023-03-14


我正在处理一个Spring BootNeo4j应用程序

在保存新密码之前,如何编写自定义密码来检查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;
}
}

特权域:

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;
  }
}

共有1个答案

濮阳振
2023-03-14

在这个问题的答案中可以找到,要更新(而不是创建新实例),在调用save方法时,必须使用节点的ID。

或者(如上述问题的注释所示),您应该基于此文档创建自己的查询。

 类似资料:
  • 我有一种感觉,我在这件事上完全错了。但无论如何。 我有一个sql数据库,它本质上是一个有目的的非规范化表,我构造这个表是为了使这项任务对我来说更容易,所以我可以从一个表中获取内容。 我有一张成双成对的桌子,像这样: 等等 所以对于我的neo4j图数据库,我希望每个用户ID作为一个节点,其他的东西不是太重要,但基本上是关系中的东西。 我只希望每个用户有一个节点,所以我的感觉是,如果我这样做: 当我们

  • 我从我的网络商店API调用中获取XML,其结构非常像下面的示例: 其中有更多的参数,数量取决于许多外部因素。我正在尝试获取用户名,当id“111”和id“112”的值是我要查找的值时 上述代码按预期返回“userOne”和“userTwo”。 问题是,Id“111”要么有值“Param 1 is on”要么什么都没有,如果没有值,它就不会显示在XML中。所以我需要一个表达式来检查id为“111”的

  • 数组有一个ID列表,需要在检查之前首先打开该列表。 当我运行上面的代码时,节点甚至在子节点展开之前就被检查了。 在我们执行其他步骤(如检查节点等)之前,jstree中是否存在等待子节点扩展完成的功能,

  • 我想向文件输入一些内容,但我想首先检查是否存在具有我想要创建的名称的文件。如果是这样,我不想创建任何文件,即使文件是空的。 我的尝试 有什么办法可以做我想做的事吗?

  • 调用web3.eth.isMining()方法来检查节点是否在进行挖矿。 调用: web3.eth.isMining([callback]) 返回值: 一个Promise对象,挖矿时其解析值为true,否则为false。 示例代码: web3.eth.isMining().then(console.log); > true

  • 我有以下课程: 我正在尝试实现一种方法: 这将检查是否是的祖先(任何深度,直到根)。 我需要一个密码查询。