首页 > 解决方案 > 按子对象中参数的值查询dsl顺序

问题描述

我有一个样本对象(非常简化)

class Sample {
    List analysis;
}

并且分析包含一个值

class Analysis {
    Integer value;
}

该样本包含 N 个这些样本,但并非所有样本都有值。在 Querydsl 中,我想按具有任何价值的分析百分比对结果进行排序。

我已经尝试过了,但它看起来不像是在计算值的数量。

query.orderBy(
    new OrderSpecifier(
        pRequest.getOrder(),
        Expressions.asNumber(qSample.analysis.any().value.isNotNull().count().divide(qSample.analysis.size()) )
    )
);

标签: javaspring-bootspring-data-jpaquerydsl

解决方案


尝试:

query.orderBy(
    pRequest.getOrder(),
    Expressions.asNumber(
         qSample.analysis.any().value.isNotNull().count().divide(qSample.analysis.size())).asc()
);

推荐阅读