如何select count(*) in criteria api?
How to select count(*) in criteria api?
我有一个由 hibernate 标准生成的查询 api 需要相当多的时间来执行:
select count (entity.id)
from table
where field1 in ('...') and field2 in ('...') and ...
我已将 entity.id 替换为 '*':
select count (*)
from table
where field1 in ('...') and field2 in ('...') and ...
目前由于某些原因它运行良好,但我无法通过条件 api 生成此查询。我正在这样创建 Root:
Root<MyEntity> root cq.from(MyEntity.class);
有什么方法可以使用 select count(*) 而不是 count(id) 生成 sql 查询?
使用 count(1)
相当于 criteriaBuilder.count(criteriaBuilder.literal(1))
我有一个由 hibernate 标准生成的查询 api 需要相当多的时间来执行:
select count (entity.id)
from table
where field1 in ('...') and field2 in ('...') and ...
我已将 entity.id 替换为 '*':
select count (*)
from table
where field1 in ('...') and field2 in ('...') and ...
目前由于某些原因它运行良好,但我无法通过条件 api 生成此查询。我正在这样创建 Root:
Root<MyEntity> root cq.from(MyEntity.class);
有什么方法可以使用 select count(*) 而不是 count(id) 生成 sql 查询?
使用 count(1)
相当于 criteriaBuilder.count(criteriaBuilder.literal(1))