将 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

如果有人有更好的,我会非常感兴趣:)