代码之家  ›  专栏  ›  技术社区  ›  Marinos An

如何在querydsl中按字段位置排序?

  •  0
  • Marinos An  · 技术社区  · 7 年前

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

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

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

    1 回复  |  直到 7 年前
        1
  •  1
  •   Robert Bain    7 年前

    据我所知,您的要求是按数据库列排序,然后按作为参数提供的数字排序。我想这会有用的,我通过了 1L 进入 Expressions.constant 但很明显,用动态生成的字段替换它。

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