ErV*_*VeY 22 java orm jpa jpql
有可能在JPQL中执行此sql查询的等效操作吗?
SELECT *
FROM COUNTRIES c WHERE COUNTRY_ID IN (
SELECT DISTINCT COUNTRY_ID
FROM PORTS p
WHERE p.COUNTRY_ID = c.COUNTRY_ID AND STATE = 'A'
)
Run Code Online (Sandbox Code Playgroud)
top*_*hef 35
您需要使用IN和子查询对其进行测试,因为它们都可以在JPQL中工作(根据语法参考,它们可以一起工作).您还可以查看MEMBER OF表达式.
但在我看来,有更好的方法.此类查询称为相关子查询,可以使用EXISTS重写它们:
SELECT * FROM COUNTRIES c WHERE
EXISTS (
SELECT 'found' FROM PORTS p
WHERE p.COUNTRY_ID = c.COUNTRY_ID AND STATE = 'A'
)
Run Code Online (Sandbox Code Playgroud)
JPQL支持带有子查询的EXISTS.
归档时间: |
|
查看次数: |
63111 次 |
最近记录: |