我不确定这是否可行,但我想知道是否有一种方法可以创建单个条件查询并根据唯一限制返回多个计数。
示例
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 结果集。我想获得员工计数的不受限制的计数,而无需执行单独的查询。
最佳答案
您需要加入表两次...虽然这可以使用 Criteria 完成,但在 HQL 中通常更容易。
select count(ep1.id), count(ep2.id)
from EmployeeProfile as ep1
join EmployeeProfile as ep2
where ep2.pAccrualBalance > 0
关于java - Hibernate Criteria 来自单个查询的多个 rowCounts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19841188/