Neo4JTemplate 在一次查询中创建和获取 ID - Spring Data Neo4j 4.0.0.M1
Neo4JTemplate Create And Get Id in One Query - Spring Data Neo4j 4.0.0.M1
我在 Spring Data Neo4j 3.1.2 中使用了这个查询来创建一个人并获取它的 ID:
Create (n:Person {gender:'MALE',sic:'sic-123'}) return id(n)
我使用 Neo4JTemplate 执行此查询:
neo4JTemplate.query("Create (n:Person {gender:{gender},sic:{sic}}) "+
"return id(n)",ImmutableMap.of("gender","MALE","sic","sic-123");
现在我想使用 Spring Data Neo4J 4.0.0.M1,因为它支持服务器。
在 SDN 4 中,可以通过
使用 Neo4jTemplate 执行查询
void neo4jTemplate.execute(String jsonStatement)
//CREATE, MERGE or DELETE the node
或
<T> T queryForObject(Class<T> objectType, String cypher, Map<String,?> parameters)
//The RETURN of an Object possible but read only - mode (no creation)
<T> Iterable<T> queryForObjects(Class<T> objectType, String cypher,
Map<String,?> parameters)
//The RETURN of Objects possible but read only - mode (no creation)
Iterable<Map<String,Object>> query(String cypher,
Map<String,?> parameters)
//The RETURN of Objects possible but read only - mode (no creation)
我现在的问题是:
我如何使用 neo4jTemplate 仅使用一个查询来创建我的节点并获取它的 ID?
P.S.: id 的创建和 return 有效,但我只需要一个查询来解决这个问题。
目前您无法使用 Neo4jTemplate 执行此类查询。只允许非修改 Cypher 查询 return 结果。
您必须保存 Person 实体,然后使用保存后填充的 ID。
这已计划修复(尽管不能保证修复版本)- 请参阅 https://github.com/neo4j/neo4j-ogm/issues/22
我在 Spring Data Neo4j 3.1.2 中使用了这个查询来创建一个人并获取它的 ID:
Create (n:Person {gender:'MALE',sic:'sic-123'}) return id(n)
我使用 Neo4JTemplate 执行此查询:
neo4JTemplate.query("Create (n:Person {gender:{gender},sic:{sic}}) "+
"return id(n)",ImmutableMap.of("gender","MALE","sic","sic-123");
现在我想使用 Spring Data Neo4J 4.0.0.M1,因为它支持服务器。
在 SDN 4 中,可以通过
使用 Neo4jTemplate 执行查询void neo4jTemplate.execute(String jsonStatement)
//CREATE, MERGE or DELETE the node
或
<T> T queryForObject(Class<T> objectType, String cypher, Map<String,?> parameters)
//The RETURN of an Object possible but read only - mode (no creation)
<T> Iterable<T> queryForObjects(Class<T> objectType, String cypher,
Map<String,?> parameters)
//The RETURN of Objects possible but read only - mode (no creation)
Iterable<Map<String,Object>> query(String cypher,
Map<String,?> parameters)
//The RETURN of Objects possible but read only - mode (no creation)
我现在的问题是: 我如何使用 neo4jTemplate 仅使用一个查询来创建我的节点并获取它的 ID?
P.S.: id 的创建和 return 有效,但我只需要一个查询来解决这个问题。
目前您无法使用 Neo4jTemplate 执行此类查询。只允许非修改 Cypher 查询 return 结果。
您必须保存 Person 实体,然后使用保存后填充的 ID。
这已计划修复(尽管不能保证修复版本)- 请参阅 https://github.com/neo4j/neo4j-ogm/issues/22