【问题标题】:Optimal way to achieve setmaxresults in springdatajpa with hql query使用 hql 查询在 springdatajpa 中实现 setmaxresults 的最佳方法
【发布时间】:2021-12-22 04:16:40
【问题描述】:

由于spring的@query不支持限制,我们需要分页查询参数以外的其他方法

【问题讨论】:

    标签: spring spring-data-jpa hql


    【解决方案1】:
     @Query(" select something so where so.id>50 order by so.created desc")
        @QueryHints(@QueryHint(name = "org.hibernate.annotations.FETCH_SIZE" , value = "1"))
    optionam<something> findlatestSomething();
    

    【讨论】:

    • 获取大小与最大结果不同。
    • 还有其他更好的方法来获得最大结果吗?我只需要将最大结果限制为 1。
    【解决方案2】:
    @Query(" select something s where s.id = select max(so.id) something so order by so.id desc")
    optionam<something> findlatestSomething();
    

    【讨论】:

    • 您已经在两天前提交了答案。发布第二个答案的目的是什么?如果这解决了您的第一个答案的问题,您应该只编辑您的第一个答案。相比之下,如果这提供了在某些情况下可能更可取的替代方法,那么解释这些情况是什么会很有用。不过,即使在这种情况下,您通常也会将这些选项放在同一个答案中。
    • 我为同一个查询提交了多个答案。我同意我可以将所有不同的答案加在一起。后面的部分只有我学到了另一种方法。所以分享为另一个答案。希望你明白了。
    • 它仍然无法帮助我理解这些之间的区别。哪个是首选?什么情况下?
    猜你喜欢
    • 1970-01-01
    • 2013-12-27
    • 2015-06-05
    • 2012-02-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-14
    • 2013-05-08
    相关资源
    最近更新 更多