使用左连接从子表到父表的Hibernate HQL

时间:2016-06-30 14:17:53

标签: java sql hibernate hql

在模型中有两个表: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启动连接并转到可选角色。

最好的办法是什么?

1 个答案:

答案 0 :(得分:1)

更新的答案

试试这个:

Person课程中输入以下属性:

List<Role> lstRole;

这样当您编写查询时:

SELECT P FROM Person P

你将为每个人获得一个相关角色的列表。