2016-05-10 11 views
0
私は現在、SDN 4を使用し、次のクエリを実行するためにtrysい

でノードを見つけます。ただし、常に構文エラーが返されます。 Neo4j Webクライアントを使用してノードを返すため、クエリが正しいと確信しています。春データのNeo4jは、ラベル

SDNがノードを見つけることができないため、エラーが発生しますか。label

答えて

2

これはCypherの制限であり、SDNの制限ではありません。パラメータとしてのラベル(または関係タイプ)はサポートされていません。 this and related feature requestsを参照してください。使用

あなたはこれを回避することができますwhere句やラベル(N)機能:

MATCH (n:TNode) 
WHERE {0} in labels(n) 
RETURN n 

これは警告が付属しています - それはMATCH句で一致したすべてのノードを通過します。あなたの状況で:TNodeラベルは問題を解決するかもしれませんが、一般的に単純なMATCH(n)を持つことはデータベース内のすべてのノードを通過しますが、これは非常に遅くなります。

その他のオプションは、手動でクエリを作成し、クエリを実行するためにorg.springframework.data.neo4j.template.Neo4jOperations番号のqueryForObjectsを使用することです:

String query = "MATCH (n:TNode:" + type + ") RETURN n"; // ugly, but works, beware of query injections etc.. 
Collection<TNode> nodes = neo4jOperations.queryForObjects(TNode.class, query, params); 
関連する問題