弹簧数据-通过列乘法进行排序

时间:2019-03-12 09:38:50

标签: spring jpa spring-data-jpa

我遇到了一个问题,我需要通过将实体的两列相乘来进行排序,为了想象,实体是:

@Entity
public class Entity {

    @Column(name="amount")
    private BigDecimal amount;

    @Column(name="unitPprice")
    private BigDecimal unitPrice;

    .
    .
    .
    many more columns
}

我的repo接口实现了JpaRepository和QuerydslPredicateExecutor, 但我正在努力寻找一种通过“金额*单价”对数据进行排序的方法, 因为我找不到将它放入其中的方法

PageRequest(new Sort.Order(ASC, "amount * unitPrice")

没有PropertyReferenceException:没有属性数量*抛出单价...。

我无法为用户命名查询,因为我的查询需要根据用户输入进行大量过滤(无法将where子句放入查询中,因为如果用户未选择任何值,那么where子句就不能位于查询)。

简单点。我需要诸如findAll(Predicate,Pageable)之类的东西,但我需要强制该查询按“金额*单价”对其进行排序,同时还要保留我的Preditate(过滤器)和Pageable(偏移量,限制,其他排序)。 >

0 个答案:

没有答案