使用 JPA 列出与约束集合匹配的元素
我在 PostgreSQL 中有一个这样定义的实体(http://sqlfiddle.com/#!17/ e5a2ec/1):
create table foo (
id bigint primary key,
code varchar(4) not null,
label varchar(255) not null,
from_date date not null,
to_date date null,
unique (code, from_date)
);
我可以使用本机 PostgreSQL 查询来获取与 code
集合匹配的最高级元素(最大 from_date
)
select f1.*
from
foo f1,
(select code, max(from_date) max_from_date from foo where code in ('a', 'b', 'c') group by code) f2
where f1.code = f2.code and f1.from_date = f2.max_from_date;
......但我不能使用 CriteriaQuery 或 JPQL 创建类似的查询。
我的问题是我知道子查询只能在 ̀where子句中使用,不能使用
multiselect`。
I have an entity defined like this in PostgreSQL (http://sqlfiddle.com/#!17/e5a2ec/1):
create table foo (
id bigint primary key,
code varchar(4) not null,
label varchar(255) not null,
from_date date not null,
to_date date null,
unique (code, from_date)
);
I can get the most advanced elements (with max from_date
) matching a collection of code
using native PostgreSQL query...
select f1.*
from
foo f1,
(select code, max(from_date) max_from_date from foo where code in ('a', 'b', 'c') group by code) f2
where f1.code = f2.code and f1.from_date = f2.max_from_date;
...but I'm not able to create a similar query using CriteriaQuery or JPQL.
My problem is I understood subqueries can only be used in ̀whereclause and cannot use
multiselect`.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论