Spring CrudRepository では、フィールドの「IN 句」はサポートされていますか? つまり、次のようなものですか?
findByInventoryIds(List<Long> inventoryIdList)
そのようなサポートが利用できない場合、どのような洗練されたオプションを検討できますか? ID ごとにクエリを実行するのは最適ではない場合があります。
Spring CrudRepository では、フィールドの「IN 句」はサポートされていますか? つまり、次のようなものですか?
findByInventoryIds(List<Long> inventoryIdList)
そのようなサポートが利用できない場合、どのような洗練されたオプションを検討できますか? ID ごとにクエリを実行するのは最適ではない場合があります。
findByInventoryIdIn(List<Long> inventoryIdList)
トリックを行う必要があります。
HTTP リクエスト パラメータの形式は次のようになります。
Yes ?id=1,2,3
No ?id=1&id=2&id=3
JPA リポジトリ キーワードの完全なリストは、現在のドキュメント リストにあります。IsIn
読みやすさのために動詞を好む場合は、これは同等であり、JPA はNotIn
andもサポートすることを示していますIsNotIn
。
Spring CrudRepository のどのメソッドでも、 @Query を自分で指定できるはずです。このようなものが動作するはずです:
@Query( "select o from MyObject o where inventoryId in :ids" )
List<MyObject> findByInventoryIds(@Param("ids") List<Long> inventoryIdList);