【问题标题】:How to use order by and Limit in Spring Data JPA using QueryDSL如何使用 QueryDSL 在 Spring Data JPA 中使用 order by 和 Limit
【发布时间】:2011-09-15 10:14:10
【问题描述】:

我在我的项目中使用带有 RDBMS 的 Spring Data JPA。我有一个要求,我必须从具有最新日期的表中从数据库中获取一条记录。为此,我需要使用限制和按函数排序或使用子查询。但是,我想知道我是否不想使用 NamedQuery 有没有一种方法可以使用 Spring Data JPA 和 QueryDSL 来实现。

【问题讨论】:

    标签: java database querydsl spring-data


    【解决方案1】:

    QueryDslPredicateExecutor.findAll(Predicate predicate, Pageable pageable) 不应该为您解决问题吗?您可以提交new PageRequest(0, limit),从而取回第一个limitresults。

    【讨论】:

    • 感谢您的回答。我确实找到了。它返回一个列表,但工作得很好。
    • @Olver Gierke 唯一的问题是它运行了一个不必要的查询来获取计数。在这些情况下,我只使用 QueryDSL,但 LimitOne 语法会很酷。发表建议here
    • 如果您的返回类型为 List 而不是 Page,则不会。
    • 在 QueryDslJpaRepository 的情况下,只有一种方法,它始终运行计数查询。还有另一种解决方法吗? @OliverGierke
    【解决方案2】:

    如何使用 MIN 和 MAX 函数来实现这一点。

    SELECT MAX(objDate) FROM Object
    

    【讨论】:

    • 我希望不使用任何命名查询。通过使用名称查询非常简单,但我想知道是否有办法解决这个问题。
    猜你喜欢
    • 2014-09-10
    • 2020-11-19
    • 2012-11-09
    • 1970-01-01
    • 2016-10-21
    • 1970-01-01
    • 2019-01-27
    • 2017-09-25
    • 2020-06-16
    相关资源
    最近更新 更多