3

Spring Data neo4j の GraphRepository で @Query アノテーションを介して使用する次のクエリがあります。結果を取得するには、メソッドの戻り値の型を List として宣言します

@Query(value = "START user=node:searchByMemberID(memberID=1) MATCH user-[r:FRIENDS_WITH]->member RETURN member")
List<Node> getNodes(int userID);

2列を返すクエリを書きたい場合、対応するメソッドの戻り値の型はどうなりますか。たとえば、上記のクエリのように、以下のクエリの場合、リストの代わりに何を書く必要がありますか。

START user=node:searchByMemberID(memberID='1') MATCH user-[r:FRIENDS_WITH]->member RETURN member, r.property
4

2 に答える 2

9

その場合、クエリIterable<Map<String,Object>>は返された行を反復処理できる を返します。各要素は、返されたフィールドの名前でアクセスできるマップであり、neo4jOperations変換メソッドを使用して値オブジェクトを適切なクラスにキャストします。

Iterable<Map<String, Object>> it = getNodes(...);

while (it.hasNext()) {
   Map<String, Object> map = it.next();
   obj = neo4jOperations.convert(map.get("member"), Node.class);
   ...
}
于 2013-06-16T14:16:05.130 に答える