我有一个如下所示的节点对象:
@NodeEntity
public class Title {
private Long id;
private String name;
public void setName(String name){
this.name=name;
}
}
名称是此对象的自然标识符。我想确保为name的每个值创建一个Node。使用Spring Data 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);
答案 0 :(得分:1)
id由neo4j提供,你不能自己分配一个。 SDN(更具体地说,OGM)没有处理数据库管理的API;你必须自己做。我不确定我完全理解你想要实现的目标,但是在标题字段上设置一个唯一约束是个好主意。见http://neo4j.com/docs/stable/query-constraints.html#query-constraints-unique-nodes。
答案 1 :(得分:1)
SDN 4.x中没有合并功能。您可以执行以下任一操作 -
OR