gpt4 book ai didi

spring crud存储库按字段A的列表顺序按字段A和字段B的前n个项查找

转载 作者:行者123 更新时间:2023-12-01 03:38:53 25 4
gpt4 key购买 nike

我在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等于参数,字段b在一组参数中,由另一个字段排序。

ps:对不起标签,但是没有spring-crudrepository :)

最佳答案

解决问题的方法是:

List<MyClass> findTop10ByDomainIdAndCategIdInOrderByInsertDateDesc(Long domainId, List<Long> ids);
  • Top10将结果限制为前10个。
  • ByDomainId将结果限制为已通过domainId的结果。
  • And添加了另一个约束。
  • CategIdIn将结果限制为在传递的categId中具有List的条目。
  • OrderByInsertDateDesc命令将结果按插入日期降序,然后再限制为TOP10

  • 我已经在以下示例中测试了此查询:
    List<User> findTop10ByEmailAndPropInOrderByIdDesc(String email, List<Long> props);

    其中 User是:
    private Long id;
    private String username;
    private String password;
    private String email;
    private Long prop;

    目前,我建议使用Spring Data JPA使用 LocalDateLocalDateTime来存储日期。

    关于spring crud存储库按字段A的列表顺序按字段A和字段B的前n个项查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32352019/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com