0

を使用して暗号クエリを実行しています

org.neo4j.ogm.session.Session#query(java.lang.Class<T>, java.lang.String, java.util.Map<java.lang.String,?>)

クラスは、@QueryResultを使用して注釈を付けた POJO です

@QueryResult
public class Neo4jQueryResultClip {
    private String clipUuid;

    private String postTitle;

    private Date clipCreatedAt;
//getters and setters
}

私のクエリサイファーは次のようになります

match (c:Clip) where (:User{uuid:{uuidParam}})-[:USER_FOLLOWS_USER]->(:User)-[:CLIP_BY_USER]->(c) OR (:User{uuid:{uuidParam}})-[:CLIP_BY_USER]->(c)match (c)<-[:CLIP_PRODUCT|:CLIP_INSPIRATION]-(post) optional match (c)<-[cp:CLIP_PRODUCT]-(post) return c.uuid as clipUuid,c.createdAt as clipCreatedAt,post.title as postTitle order by c.createdAt DESC

ただし、返される結果の反復子は空です

を使用して同じクエリを実行すると

org.neo4j.ogm.session.Session#query(java.lang.String, java.util.Map<java.lang.String,?>)

にカプセル化された適切な結果が得られます

org.neo4j.ogm.session.result.Result

物体。

私がここに欠けているものはありますか?クラスNeo4jQueryResultClipが neo4j スプリング構成によってスキャンされていることを確認しました。次のバージョンの spring-data-neo4j (4.0.0.RELEASE) および neo4j-ogm ライブラリ (1.1.4) を使用しています。

4

1 に答える 1

0

@QueryResultSpring Data Neo4j リポジトリ ( http://docs.spring.io/spring-data/neo4j/docs/4.0.0.RELEASE/reference/html/#reference_programming-model_mapresultを参照) で使用されているため、マップされていません。 .

代わりにリポジトリ内でこれを行う場合

@Query("match (c:Clip) where (:User{uuid:{uuidParam}})-[:USER_FOLLOWS_USER]->(:User)-[:CLIP_BY_USER]->(c) OR (:User{uuid:{uuidParam}})-[:CLIP_BY_USER]->(c)match (c)<-[:CLIP_PRODUCT|:CLIP_INSPIRATION]-(post) optional match (c)<-[cp:CLIP_PRODUCT]-(post) return c.uuid as clipUuid,c.createdAt as clipCreatedAt,post.title as postTitle order by c.createdAt DESC")
Neo4jQueryResultClip getClip(...);

その後、問題なく動作するはずです。

于 2016-02-03T15:29:24.633 に答える