【问题标题】:Hibernate Criteria multiple rowCounts from a single queryHibernate Criteria 来自单个查询的多个 rowCounts
【发布时间】:2013-11-07 16:24:10
【问题描述】:

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

例子

    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 的不受限制的计数,而无需进行单独的查询。

【问题讨论】:

    标签: java hibernate criteria


    【解决方案1】:

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

    select count(ep1.id), count(ep2.id)
    from EmployeeProfile as ep1
    join EmployeeProfile as ep2
    where ep2.pAccrualBalance > 0
    

    【讨论】:

      猜你喜欢
      • 2013-01-02
      • 2017-02-16
      • 1970-01-01
      • 2021-02-09
      • 2023-04-07
      • 2013-07-16
      • 2012-07-11
      • 2019-07-06
      • 2015-03-04
      相关资源
      最近更新 更多