Spring Boot - 在 sortBy (Pageable) 中进行减法

问题描述

是否可以像这样在页面请求中将 sortBy 中的两个字段(数字)相减?

PageRequest.of(page,size,Sort.Direction.ASC,"price-discount")

。 这是我得到的错误..

排序表达式“price-discount: ASC”必须只包含在 select 子句中使用的属性引用或别名。如果你真的想用其他东西来排序,请使用 JpaSort.unsafe(...)!

解决方法

创建一个新的 PageRequest,并应用排序方向和属性。

PageRequest.of(page,size,Sort.Direction.ASC,"price","discount");

OR

创建一个新的 PageRequest,并应用排序参数。

Sort sort = Sort.by(
    Sort.Order.asc("price"),Sort.Order.desc("discount"));
PageRequest.of(page,sort);