我认为这几乎是不可能的或非常棘手的。我正在使用 CriteriaBuilder、JPA 2.0、Hibernate 和 MariaDB,并希望使用 CriteriaBuilder 构建以下查询:
SELECT COUNT(*) FROM
(SELECT DISTINCT(SomeColumn) // I think this is not possible?
FROM MyTable
WHERE ... COMPLEX CLAUSE ...
GROUP BY SomeColumn) MyTable
Run Code Online (Sandbox Code Playgroud)
我的问题:可能吗?如果,如何?
感谢您对这件事的关注!
标记
此示例假定您正在使用元模型生成。
CriteriaQuery<Long> cq = cb.createQuery(Long.class);
Subquery<SomeColumnType> subcq = cq.subquery(SomeColumnType.class);
Root<MyTable> from = subcq.from(MyTable.class);
subcq.select(from.get(MyTable_.someColumn));
subcq.where(** complex where statements **);
subcq.groupBy(from.get(MyTable_.someColumn));
cq.select(cb.count(subcq));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16115 次 |
| 最近记录: |