1

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 を取得する 1 つのクエリのみを使用するにはどうすればよいですか?

PS: ID の作成と戻りは機能しますが、この問題を管理するクエリは 1 つだけです。

4

1 に答える 1

1

現時点では、Neo4jTemplate を使用してこの種のクエリを実行することはできません。結果を返すことができるのは、変更を加えていない Cypher クエリのみです。

Person エンティティを保存してから、保存後に入力された ID を使用する必要があります。

これは修正される予定です (ただし、修正バージョンは保証されていません) - https://github.com/neo4j/neo4j-ogm/issues/22を参照してください

于 2015-07-15T12:24:51.730 に答える