2017-04-17 48 views
2

我目前正在評估OGM /彈簧數據的Neo4j的使用情況,並在下面的問題就來了:使用OGM的自定義Cypher查詢的深度始終爲0?

要麼通過Spring數據@Query註釋或直接通過Neo4j的Session執行自定義的Cypher查詢時,結果只包含直接查詢節點而不是相關節點(在生成的節點對象中,關係爲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