将 SQL 转换为 JPA QL
Transforming SQL to JPA QL
我有一个连接三个 table 的 SQL 查询。我想 select 一个用户帐户的所有项目。
即给我特定用户的所有项目...
用户 => 帐户(多对多),帐户 => 项目(1 对多)
用户 => 多对多帐户使用连接管理 table。
这是我的SQL
select UA.user_id, m.PROJECT_ID, m.name, m.description
from Project AS m INNER JOIN Account
AS a on m.ACCOUNT_ID = a.ACCOUNT_ID
INNER JOIN User_Account UA ON a.ACCOUNT_ID = UA.ACCOUNT_ID
WHERE UA.USER_ID = ?1
哪个returns项目。
我想将此查询转换为 JPA QL,但真的不知道从哪里开始,有人可以帮忙吗?
谢谢
解决方案:
select distinct p from Project, Account a, User u join a.projects p join u.accounts a where u.id = :id
这样就可以了....
select distinct p
from Project,
Account a,
User u
join a.projects p
join u.accounts a where u.id = :id
如果有人有更好的,我会非常感兴趣:)
我有一个连接三个 table 的 SQL 查询。我想 select 一个用户帐户的所有项目。
即给我特定用户的所有项目...
用户 => 帐户(多对多),帐户 => 项目(1 对多)
用户 => 多对多帐户使用连接管理 table。
这是我的SQL
select UA.user_id, m.PROJECT_ID, m.name, m.description
from Project AS m INNER JOIN Account
AS a on m.ACCOUNT_ID = a.ACCOUNT_ID
INNER JOIN User_Account UA ON a.ACCOUNT_ID = UA.ACCOUNT_ID
WHERE UA.USER_ID = ?1
哪个returns项目。
我想将此查询转换为 JPA QL,但真的不知道从哪里开始,有人可以帮忙吗?
谢谢
解决方案:
select distinct p from Project, Account a, User u join a.projects p join u.accounts a where u.id = :id
这样就可以了....
select distinct p
from Project,
Account a,
User u
join a.projects p
join u.accounts a where u.id = :id
如果有人有更好的,我会非常感兴趣:)