我有一个简单的CrudRepository
,它接受可排序的:
class PersonReposiroty extends CrudRepository<Person, Long> {
findAll(Pageable page);
}
我想按两个字段的总和对它进行排序:
dao.findAll(PageRequest.of(page, size, Sort.by("price1, price2"));
问题:首先按
price1
排序,然后按price2
排序。我如何总结呢? 最佳答案
我发现实际上可以按总和排序,如下所示:
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());
因此,也许
querydsl
必须为CrudRepository
,但无论如何我都在使用它。