Преобразование SQL в JPA QL - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть SQL-запрос, который объединяет три таблицы.Где я хотел бы выбрать все проекты для учетных записей пользователей.

т.е. дать мне все проекты для конкретного пользователя ...

Пользователь => Учетные записи (многие для многих), Учетные записи=> Проекты (от 1 до многих)

Пользователь => Учетные записи многих для многих управляются с помощью таблицы объединения.

Это мой 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

, который возвращаетпроекты.

Я хочу преобразовать этот запрос в JPA QL, но на самом деле не знаю, с чего начать, кто-нибудь может помочь?

Спасибо

Решение:

select distinct p from Project, Account a, User u join a.projects p join u.accounts a where u.id = :id

1 Ответ

0 голосов
/ 06 февраля 2019

Это делает трюк ....

select distinct p 
from Project, 
Account a, 
User u 
join a.projects p 
join u.accounts a where u.id = :id

Если у кого-то есть лучший, мне было бы очень интересно:)

...