2017-04-17 6 views
2

私は現在、ユースケースのためにOGM /春データのNeo4jを評価し、次のような問題に出くわしましたよ: OGMを使用したカスタムCypherクエリの深度は常に0ですか?

春データ @Query注釈を介して、または直接のNeo4j Sessionのいずれかを介してカスタムサイファークエリを実行し、その結果は含まれていノードは関連するノードではなく照会されます(結果のノードオブジェクトには関係は null)。私。これらのクエリの深さは、私がドキュメントから期待したように、0ではなく、1ではないようです。

深さ1のOGMまたはSpring Data Neo4jを使用してカスタムCypherクエリを実行するにはどうすればよいですか?

+1

Cypherクエリを表示してください。 – cybersam

答えて

3

デフォルトの深度1は、リポジトリと派生ファインダのfindOne/findAll/..メソッドを参照します。

これは、ドキュメントは、カスタムクエリについてこう言われる、現在のバージョンで

、カスタムクエリは、ページング、並べ替えたり、カスタムの深さをサポートしていません。さらに、ドメインエンティティへのパスのマッピングをサポートしていないため、パスをCypherクエリから返さないでください。代わりに、ノードとリレーションシップを返して、それらをドメインエンティティにマップします。例えば

http://docs.spring.io/spring-data/data-neo4j/docs/current/reference/html/#reference:session:loading-entities:cypher-queries

クエリ

MATCH (n:MyLabel)-[r]-(n2) 
WHERE ... // some condition 
RETURN n,r,n2 

リストにあなたがRETURN句で、あなたのオブジェクトにマッピングするすべてのノード/関係を持っている場合。

+0

ありがとうございました。 RETURN句では、私はノードだけを列挙し、関係はリストしませんでした。関係をリストすると、ノードエンティティのフィールドが塗りつぶされます。 考えてみましょう。ポインタありがとう! – Tom

関連する問題