我有一个简单的 CrudRepository
接受可排序的:
class PersonReposiroty extends CrudRepository<Person, Long> {
findAll(Pageable page);
}
我想按两个字段的总和对其进行排序:
dao.findAll(PageRequest.of(page, size, Sort.by("price1, price2"));
问题:这首先按 price1
排序,然后按 price2
排序。以前怎么总结呢?
最佳答案
我发现实际上可以按总和排序,如下 querydsl
:
private PageRequest pricePageSort() {
OrderSpecifier<BigDecimal> sort = QPerson.person.price1.add(QPerson.person.price2).asc(); //or .desc()
return new QPageRequest(pageNumber, pageSize, sort);
}
然后通过以下方式使用它:
dao.findAll(predicate, pricePageSort());
也许是 CrudRepository
必须 extends QuerydslPredicateExecutor<Person>
因此,但我还是在使用它。
关于java - 如何使用 CrudRepository 按组合字段排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57759646/