【发布时间】:2021-02-09 14:45:38
【问题描述】:
我需要计算CriteriaQuery 返回的行数。这里的相关信息是,这些需要是基于一组动态选择的列的不同行。
这意味着,我不能计算整个表格,因为这可能会考虑结果,如果您去除一定数量的列,那将是多余的。
我有一个要符合的谓词和选择列表:
private final List<Selection<?>> projection = new ArrayList<>();
private final List<Predicate> predicates = new ArrayList<>();
如果此查询未分页执行,我想计算将返回的行数:
criteriaQuery.multiselect(projection)
.distinct(true)
.where(cb.and(predicates.toArray(new Predicate[0])));
将其转换为Subquery 的常用方法将不起作用,因为您无法在Subquery 上使用multiselect,也无法从Subquery 中进行选择。
这可以通过 Criteria API 完成吗?
【问题讨论】:
标签: java jpa criteria-api