私はSpring Repoに次のようなものを持っています:
findTop10ItemsByCategIdInOrderByInsertDateDesc(List ids)
挿入日順に並べられた ID リストのカテゴリ ID の最初の 10 項目が必要です。
別の同様のクエリ:
findTop10ItemsByDomainIdAndCategIdInOrderByInsertDateDesc(List ids, @Param Integer domainId)
ここでは、ドメイン ID が指定された param と等しく、categId が指定されたリストに含まれるようにします。
@Query を使用して解決できましたが、上記のクエリに 1 つのライナーがあるのだろうかと思います。
ありがとう
編集
トップは正常に動作します。最初は持っていましたfindTop10ItemsByDomainIdAndCategIdOrderByInsertDateDesc
。ここで、カテゴリ ID のリストからの結果が必要です。それが新しい要件です。
2番目の編集 私のクエリは、ドメインIDが特定のパラメータと等しく、カテゴリIDが特定のリストに含まれているセットの結果を見つけるために機能します。しかし、HQL は setMaxResult のようなものを top または limit としてサポートしていないことがわかりました。
@Query("select i from Items i where i.domainId = :domainId and i.categId in :categoryIds order by i.insertDate desc")
このメソッドの(@Param("domainid") Integer domainid,List<Integer> categoryIds)
パラメーターはありましたが、各パラメーターに @Param アノテーションを使用するか、@Param をまったく使用しないことを許可されているようです (Pageable return を除く; 私の場合ではありません)。
この考えを達成する方法はまだわかりません。フィールド a が param に等しい上位 n 要素、param のセット内のフィールド b を別のフィールドで並べ替えて抽出します。
ps: タグで申し訳ありませんが、spring-crudrepository はありません:)