簡體   English   中英

Hibernate Criteria從單個查詢獲得多個rowCounts

[英]Hibernate Criteria multiple rowCounts from a single query

我不確定這是否可行,但我想知道是否有一種方法可以創建單個條件查詢並根據唯一限制返回多個計數。

    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的不受限制的計數,而不必執行單獨的查詢。

您需要兩次加入表格...盡管可以使用Criteria來完成,但在HQL中通常更容易。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM