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数据Neo4j中的节点标识符_Neo4j_Spring Data Neo4j 4_Neo4j Ogm - Fatal编程技术网

Spring数据Neo4j中的节点标识符

Spring数据Neo4j中的节点标识符,neo4j,spring-data-neo4j-4,neo4j-ogm,Neo4j,Spring Data Neo4j 4,Neo4j Ogm,我有一个节点对象,如下所示: @NodeEntity public class Title { private Long id; private String name; public void setName(String name){ this.name=name; } } 名称是此对象的自然标识符。我想确保为name的每个值创建一个节点。使用Spring数据Neo4j执行此操作的推荐方法是什么?我尝试将此逻辑添加到setter,如下所示:

我有一个节点对象,如下所示:

@NodeEntity
public class Title {
    private Long id;
    private String name;
    public void setName(String name){
        this.name=name;
    }
}
名称是此对象的自然标识符。我想确保为name的每个值创建一个节点。使用Spring数据Neo4j执行此操作的推荐方法是什么?我尝试将此逻辑添加到setter,如下所示:

public void setName(String name){
    this.name=name;
    this.id = new Long(name.hashCode());
}
但是当我这样做的时候,节点根本没有被创建。我正在使用Neo4jTemplate保存此对象:

Title t = new Title();
t.setName("blah");
neo4jTemplate.save(t);

id由neo4j提供,您不能自己分配。SDN(更具体地说,OGM)没有处理数据库管理的API;你必须自己做。我不确定我是否完全理解您试图实现的目标,但在标题字段上设置一个独特的约束是一个好主意。看

id由neo4j提供,您不能自己分配。SDN(更具体地说,OGM)没有处理数据库管理的API;你必须自己做。我不确定我是否完全理解您试图实现的目标,但在标题字段上设置一个独特的约束是一个好主意。看

SDN 4.x中没有合并功能。您可以执行以下任一操作-

  • 设置一个唯一的约束(无论如何都应该有),然后处理ConstraintViolatedException
  • 按名称加载实体,如果实体存在,则使用它;如果实体不存在,则创建一个新实体

  • SDN 4.x中没有合并功能。您可以执行以下任一操作-

  • 设置一个唯一的约束(无论如何都应该有),然后处理ConstraintViolatedException
  • 按名称加载实体,如果实体存在,则使用它;如果实体不存在,则创建一个新实体

  • 从SDN4.1.1开始,似乎没有对索引的支持。目前我解决这个问题的方法是为“name”创建一个索引,然后通过将标题修改为数据库中已经存在的等价标题(如果存在的话)来操作我试图保存的对象图。非常麻烦-如果有任何其他方法可以解决这个问题,我将非常感谢您的帮助。从SDN 4.1.1开始,它就不支持索引。目前我解决这个问题的方法是为“name”创建一个索引,然后通过将标题修改为数据库中已经存在的等价标题(如果存在的话)来操作我试图保存的对象图。非常麻烦-如果有任何其他方法可以解决这个问题,我将非常感谢您的帮助。我认为我试图实现的目标与这个问题非常相似:建议使用neo4jTemplate.query()来“合并”节点,而不是保存新节点。感谢您的研究。我认为我试图实现的与这个问题非常相似:建议使用neo4jTemplate.query()来“合并”节点,而不是保存新节点。谢谢你的调查。