HIbernate criteria builder sum with if 条件

HIbernate criteria builder sum with if condition

SQL 查询:

SELECT SUM(IF(table.type='type1', 1, 0)) as type1,SUM(IF(table.type='type2', 1, 0)) as type2 from table;

如何在条件生成器中编写相同的查询,如下所示:

CriteriaBuilder builder = entityManager.getCriteriaBuilder();
CriteriaQuery<Object[]> criteria = builder.createQuery( Object[].class );
Root<Table> root = criteria.from( Table.class );
criteria.multiselect(builder.sum())

我无法在条件生成器中放置 if 条件。

注意:Table 有 bean class。 提前致谢。

显然 hibernate criteria does not support IF。我会考虑仅使用条件进行 2 个查询或使用 HQL 或仅使用本机 SQL.