2016-12-07 3 views
1

古いバージョンのSDN3ではfindById(List id)を使用できますが、SDN4にアップグレードした後はこの機能を再び使用できません。常に空に戻ります。SDN4 - idのリストを持つfindById

これは私のサンプルクラスです:

@NodeEntity 
public class Right{ 

    @GraphId 
    Long graphId; 

    String id; //random generated UUID 

    String name; 

    //Properties & Constructor 
} 

そして私は、これらのコードが含まれていRightRepositoryています、私は一度だけリポジトリを呼び出すために

public interface RightRepository extends GraphRepository<Right> { 
    List<Right> findById(List<String> id); 
} 

代わりのIDごとに取得するためにループを使用して必要リストを取得する(findAll()を使用しない)

SDN4はすでにそれをサポートしていませんか?他の解決策はありますか?

+0

は、カスタムクエリを使用してメソッドに注釈を付けてみてくださいでしたお役に立てば幸いです。例: '@Query(" MATCH(n:右)WHERE n.id IN {右寄せ} RETURN n ") findRightById(@Param(" rightIds ")リスト rightIds); ' – troig

+0

はい、カスタムクエリ。しかし、SDN4にアップグレードする前に、SDN3でその方法を使用できます。 –

+1

私はそれを現時点で達成する唯一の方法だと思います。私は他の答えを待っています – troig

答えて

1

私はコメントに投稿し、さらに調査した結果、現時点ではカスタムクエリが要件を満たす唯一の方法だと思います。これは動作します:

@Query("MATCH (n:Right) WHERE n.id IN {rightIds} RETURN n") 
List<Right> findRightById(@Param("rightIds") List<String> rightIds); 

は、それが

+1

今のところ、私はこの答えが私の質問を達成する唯一の方法だと思います。とにかく@troigに感謝します –

+0

新しいアップデートを待っている間、これ以外の答えはありません。ハハ。ありがとうございました –

関連する問題