在JPQL中,我可以使用以下select u from Entity u order by u.field1, 1
这可以确保后端mysql数据库始终以完全相同的顺序返回结果(例如,如果u.field1
有重复项)。
在位置1,我总是保持PK(id)。
如何使用querydsl
实现相同的(使用位置排序)?
P.S。排序代码是动态生成的,所以我想避免要求将PK作为额外参数提供给SortUtil。
答案 0 :(得分:1)
据我所知,您的要求是按数据库列排序,然后按您提供的数字作为参数排序。我认为这会有效,我已将1L
传递给Expressions.constant
,但显然会将其替换为动态生成的字段。
.orderBy(someRelationalPathBase.field1.asc(), new OrderSpecifier<>(Order.ASC, Expressions.constant(1L)))