Как сделать двойное отношение с помощью проекта Spring Boot + JPA? - PullRequest
0 голосов
/ 20 марта 2019

Есть проект с 4 таблицами: users, companies, roles и user_roles_relationships.

В user_roles_relationships есть 3 столбца: user_id, role_id и company_id.

Каждый пользователь имеет разные роли для каждой компании.

Я использую JPA, но, как получить все компании от конкретного пользователя? Например, в разделе списка компаний необходимо отобразить все компании, связанные с текущим аутентифицированным пользователем.

В SQL это просто, сделать внутреннее объединение, используя таблицу отношений и таблицу компании и условие where, но как работать в хранилище?

Идеальный запрос:

SELECT companies.*
FROM companies
INNER JOIN user_groups_relatinships ON (user_groups_relatinships.company_id = companies.id)
INNER JOIN users ON (users.id = user_groups_relatinships.user_id)
WHERE users.id = ?

У меня есть объекты дерева, пользователь, компания и роль, объект пользователя имеет отношение ролей с использованием аннотации @ManyToMany, а компания не имеет аннотаций отношений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...