求助大佬
jpa中,需要分页,specification中需要自定义排序,所以使用了下面的代码,又需要验证其他表,所以使用了left join,导致查询出来的数据重复,使用distinct,但是报
"在查询列表中必须出现SELECT DISTINCT, ORDER BY表达式".查询很多资料后,可使用group by,虽然可以去重,但返回的分页数据中的totalElements与实际的totalElements不相等(是未group by后的长度),
求助求助呀
List<Order> orders = new ArrayList<>();
orders.add(cb.asc(cb.selectCase().when(cb.equal(root.get("contractStatus").as(Byte.class), 2), 1)
.when(cb.equal(root.get("contractStatus").as(Byte.class), 4), 2)
.when(cb.equal(root.get("contractStatus").as(Byte.class), 1), 3)
.when(cb.equal(root.get("contractStatus").as(Byte.class), 3), 4).otherwise(10)));
orders.add(cb.desc(root.get("createDate")));
query.orderBy(orders);