如何使用Spring Boot项目+ JPA进行双重关系?

时间:2019-03-20 18:06:19

标签: postgresql spring-boot jpa

有一个包含4个表的项目:userscompaniesrolesuser_roles_relationships

user_roles_relationships中有3列:user_idrole_idcompany_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注释具有角色关系,而公司则没有关系注释。

0 个答案:

没有答案