【发布时间】:2017-08-07 14:48:07
【问题描述】:
给定以下MY_TABLE的SQL结构:
GROUP_LABEL | FILE | TOPIC
-----------------------------
group A | 1.pdf | topic A
group A | 1.pdf | topic B
group A | 2.pdf | topic A
group B | 2.pdf | topic B
我的任务是让这些东西按GROUP_LABEL 分组,同时忘记文件的不同TOPICs。所以我的预期结果是
GROUP_LABEL | COUNT(*)
----------------------
group A | 2 -- two different files 1.pdf and 2.pdf here
group B | 1 -- only one file here
在纯 SQL 中我会这样做
SELECT GROUP_LABEL, COUNT(*) FROM (
SELECT DISTINCT GROUP_LABEL, FILE FROM MY_TABLE
);
是否可以将其转换为 JPA Criteria API 查询?我不知道将我的内部查询放入 Criteria 查询的 from 构造中,在 https://docs.jboss.org/hibernate/entitymanager/3.5/reference/en/html/querycriteria.html 的 9.3.1 中,这似乎是不可能的。
但我简直不敢相信 ;-) 以前有人这样做过吗?内部查询将通过各种经过充分测试的过滤谓词来丰富,我想重用这些谓词。
我正在使用spring-boot-starter-data : 1.5.6.RELEASE,主要是标准配置。
【问题讨论】:
标签: java spring hibernate jpa jpa-criteria