1

我不确定这是否可能,但我想知道是否有一种方法可以创建单个条件查询并根据唯一限制返回多个计数。

例子

    Criteria criteria = session.createCriteria(EmployeeProfile.class);

    Integer pAccrualBalance = ((Number)criteria
            .add(Restrictions.gt("pAccrualBalance", BigDecimal.ZERO))
            .setProjection(Projections.rowCount()).uniqueResult()).intValue();

    Integer employeeCount = ((Number)criteria.setProjection(Projections.rowCount()).uniqueResult()).intValue();

    logger.info("verify pAccrualBalance import count " + pAccrualBalance);

    logger.info("verify employee import count " + employeeCount);

这段代码的问题是 pAccrualBalance 限制限制了employeeCount 结果集。我想获得employeeCount 的不受限制的计数,而无需进行单独的查询。

4

1 回答 1

0

您需要加入表两次...虽然这可以通过 Criteria 完成,但在 HQL 中通常更容易。

select count(ep1.id), count(ep2.id)
from EmployeeProfile as ep1
join EmployeeProfile as ep2
where ep2.pAccrualBalance > 0
于 2013-11-15T10:33:37.207 回答