java - 如何使用 CrudRepository 按组合字段排序?

标签 java spring jpa spring-data-jpa spring-data

我有一个简单的 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/

相关文章:

java - Spring JPA 注释和 ORM.xml 替代方案?

java - "A JDBC Driver or DataSource class name must be specified in the ConnectionDriverName property."错误

java - 我可以在 ActivePivot 中使用我的 C++ DLL 吗?

java - 使用 IDResolver 时解码 JAXB 集合失败,因为 IDResolver 对象作为目标类型

java - Google meet、zoom 或 vetera 无法与 android webview 一起使用

java - 仅当通过 Eclipse : POST on Spring Boot Controller fails with HTTP Error 415 运行时

java - 杀毒软件会降低基于 tomcat 的应用程序的速度

java - Spring 单元测试 JPA 存储库

java - Spring Security 远程授权

jpa - Spring Roo : use JPA entity as a DAO