java - Hibernate Criteria 来自单个查询的多个 rowCounts

标签 java hibernate criteria

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

示例

    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/

相关文章:

java - 我如何摆脱 "MySQLSyntaxErrorException"

java - Hibernate session.createCriteria 与 session.get 性能对比

java - JVM 如何处理 RuntimeException(s)

java - 如何以页面对象模式管理公共(public)页面

java - 使 Eclipse equals()/hashCode() 使用 getter

java - Hibernate 调用错误的 setter

java - 如何将对象从 Activity 发送到 fragment ?

java - 如何向空闲的 akka actor 发送消息?

mysql - 无法比较日期

php - 如何为模型的所有搜索操作设置默认条件?