有一个包含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
注释具有角色关系,而公司则没有关系注释。