【发布时间】:2017-11-26 22:18:17
【问题描述】:
我使用的是 Neo4j ogm 核心版本 3.0.2。在我的图表中,我有一个名为性别的节点,它可以简单地是男性或女性。如果节点男性已经存在,我希望它只更新与现有节点的关系而不是创建新节点。
这是我设置性别的方式。
Gender personGender = new Gender();
Iterator<Map<String, Object>> result =
helper.queryByEntityAndName("Gender", gender);
if (result != null) {
personGender = (Gender) result.next().get(queryNotation);
} else {
personGender.setValue(gender);
}
person.setGender(personGender);
助手 queryByEntityAndName 看起来像这样
public Iterator<Map<String, Object>> queryByEntityAndName(String entityName, String value) {
String query = "match (e:" + entityName + "" +
" {name: \"" + value + "\"}) return e";
Iterable<Map<String, Object>> result = session.query(query, Collections.EMPTY_MAP);
Iterator<Map<String, Object>> resultIterator = result.iterator();
if (resultIterator.hasNext())
return resultIterator;
return null;
}
我将 Gender 设置为值唯一
@Index(unique = true)
private String value;
在 Person 类中,Gender 是这样设置的
@Relationship(type = "HAS_GENDER_OF")
private Gender gender;
【问题讨论】:
标签: java graph neo4j graph-databases neo4j-ogm