gpt4 book ai didi

neo4j - Spring Data Neo4J - 创建与现有节点有关系的新节点

转载 作者:行者123 更新时间:2023-12-02 03:16:57 24 4
gpt4 key购买 nike

我需要创建一个新的A类节点,它与User节点有关系:

@NodeEntity
public class A implements Serializable {

/**
* Graph node identifier
*/
@GraphId
private Long nodeId;

/**
* Enity identifier
*/
private String id;

//... more properties ...

@Relationship(type = "HAS_ADVERTISER", direction = Relationship.OUTGOING)
private User user;

@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof IdentifiableEntity)) return false;

IdentifiableEntity entity = (IdentifiableEntity) o;
if (!super.equals(o)) return false;

if (id != null) {
if (!id.equals(entity.id)) return false;
} else {
if (entity.id != null) return false;
}

return true;
}


}


@NodeEntity
public class User implements Serializable {

/**
* Graph node identifier
*/
@GraphId
private Long nodeId;

/**
* Enity identifier
*/
private String id;

//... more properties ...


@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof IdentifiableEntity)) return false;

IdentifiableEntity entity = (IdentifiableEntity) o;
if (!super.equals(o)) return false;

if (id != null) {
if (!id.equals(entity.id)) return false;
} else {
if (entity.id != null) return false;
}

return true;
}

}

现在,假设我们有新节点 A 的以下数据:
{
"id": 1,
"nodeId": "0001-0001",
"user": {
"id": 4,
"nodeId": "0002-0002",
"name": null,
"firstName": null
}
}

我正在尝试使用新节点 A 和具有 "id":4 和 "nodeId":"0002-0002"(唯一节点标识符)的用户的(已经存在的)节点之间的关系创建节点 A ,但取而代之的是,用户节点将字段“name”和“firstName”更新为 null .

我正在使用 GraphRepository 代理来创建它:
@Repository
public interface ARepository extends GraphRepository<A> {


}

没有这个更新,有什么办法可以做到,只与User节点建立关系?

最佳答案

不,您必须通过 id 重新加载实体以填充所有缺失值然后保存,或者编写自定义查询。

关于neo4j - Spring Data Neo4J - 创建与现有节点有关系的新节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36375560/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com