【问题标题】:How can I sort by field position in querydsl?如何按querydsl中的字段位置排序?
【发布时间】:2018-03-26 13:03:09
【问题描述】:

在 JPQL 中,我可以使用以下 select u from Entity u order by u.field1, 1
这可确保后端 mysql 数据库始终以完全相同的顺序返回结果(例如,如果 u.field1 有重复项)。
在位置 1 我总是保留 PK(id)。

如何使用querydsl 实现相同的效果(使用位置排序)?

附:排序代码是动态生成的,所以我想避免将 PK 作为额外参数提供给 SortUtil 的要求。

【问题讨论】:

    标签: mysql querydsl


    【解决方案1】:

    据我了解,您的要求是按数据库列排序,然后按您作为参数提供的数字排序。我认为这会起作用,我已将 1L 传递给 Expressions.constant 但显然将其替换为您动态生成的字段。

    .orderBy(someRelationalPathBase.field1.asc(), new OrderSpecifier<>(Order.ASC, Expressions.constant(1L)))
    

    【讨论】:

      猜你喜欢
      • 2013-11-02
      • 1970-01-01
      • 2017-12-10
      • 1970-01-01
      • 2019-05-06
      • 2018-07-09
      • 1970-01-01
      • 1970-01-01
      • 2015-01-29
      相关资源
      最近更新 更多