我在 Spring Repo 中有这样的内容:
findTop10ItemsByCategIdInOrderByInsertDateDesc(List ids)
我想要按插入日期排序的 id 列表中类别 id 的前 10 个项目。
另一个类似的查询:
findTop10ItemsByDomainIdAndCategIdInOrderByInsertDateDesc(List ids, @Param Integer domainId)
在这里,我希望域 id 等于给定的参数,并且 categId 在给定的列表中。
我设法使用@Query 解决了它,但我想知道上述查询是否有一个衬里。
谢谢
编辑
顶部工作正常。最初我有findTop10ItemsByDomainIdAndCategIdOrderByInsertDateDesc
. 现在我想要来自类别 ID 列表的结果。这就是新的要求。
第二次编辑 我的查询适用于查找域 id 等于给定参数且类别 id 包含在给定列表中的结果集。但是我发现 HQL 不支持 setMaxResult 之类的东西作为顶部或限制。
@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 返回除外;不是我的情况)
我仍然不知道如何实现这个想法:提取前 n 个元素,其中字段 a eq 到参数,字段 b 在参数集中,由另一个字段排序。
ps:抱歉标签,但没有 spring-crudrepository :)