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.
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.