在模型中有两个表:person,role
PersonRole java类模拟N:M关系。它有两个@ManyToOne属性:
人,角色角色
我有一个HQL查询来检索属于某个角色的所有用户:
select role.name, person.name from PersonRole pr join pr.person join pr.role
需要反过来:一个人的所有角色。但如果一个人没有角色仍然需要检索该人(左连接)
select person.name, ro.le.name from PersonRole pr join pr.person join pr.role
这不起作用,因为主要实体是PersonRole并且仅返回具有角色的用户。如果Person实体中没有引用该角色的属性,则不知道如何从Person启动连接并转到可选角色。
最好的办法是什么?
答案 0 :(得分:1)
更新的答案
试试这个:
在Person
课程中输入以下属性:
List<Role> lstRole;
这样当您编写查询时:
SELECT P FROM Person P
你将为每个人获得一个相关角色的列表。