1

Spring DataGraphのCypherQueriesは初めてなので、これは非常に簡単かもしれません...

いくつかのプロパティに指定された値を持つすべてのノードをフェッチするためのCypherクエリは何でしょうか。したがって、???次の@Queryアノテーションには何が含まれるのでしょうか。

@Query(???)
List<MyObject> findByProperty1AndProperty2(String property1, String property2)

編集: それで、私はサイファーの依存関係を追加することによって派生クエリを使用することができました(以下のマイケルによって提案されたように)。しかし、私は以下のエラーが発生しているようです:

string matching regex (?i)\Qreturn\E' expected but ,' found

これは、次のようなクエリを作成しているように見えるためだと思います。

start n=node:__types__(className="com.example.MyObject") where n.property1 = {0}, n.property2 = {1} return n

それよりも

start n=node:__types__(className="com.example.MyObject") where n.property1 = {0} and n.property2 = {1} return n

(クエリでは,なくに注意してください)and

前もって感謝します。

4

1 に答える 1

4

グローバルクエリはNeo4jのスイートスポットではありませんが、Spring Data Neo4jを実行しているため、少し緩和されることを考慮してください。:)

@Query実際には、このクエリに注釈は必要ありません。

とにかくプロパティを調べて派生クエリを作成します。インデックスが作成されている場合は、そのクエリの開始点として使用されます。それ以外の場合は、「」-インデックスからすべてのエントリが取得されます__type__

実際には、次のようなクエリが作成されます。

start n=node:__types__(className="com.example.MyObject")
where n.property1 = {0} and n.property2 = {1} 
return n

したがって、SDNの現在のスナップショットビルド(今週RC1としてリリースされる予定です。次のことを実行できます)を使用している場合。

List<MyObject> findByProperty1AndProperty2(String property1, String property2)

確かに、cypherとgremlinはSDNのオプションの依存関係です(b /c一部の人々はデフォルトでscala/ groovyをプルしたくない)。cypherのMaven依存関係をプロジェクトに追加するだけです

<dependency>
   <groupId>org.neo4j</groupId>
   <artifactId>neo4j-cypher</artifactId>
   <version>${neo4j.version}</version>
</dependency>
于 2011-11-09T08:45:36.583 に答える