hibernate加入表没有参考

时间:2013-07-01 11:56:37

标签: sql hibernate hql

我有一个用户表,其中包含所有用户。 Rolemember表具有用户的角色,但并非所有用户都有角色。 ActivityMember是一个小组的成员。

表中的ActivityMember有3个成员/用户。只有该Activitymer的一个用户被指定为RoleMember。

public class RoleMember {
    private Long id;
    private Long activityId;
    private String role;
    private User user;
}

public class ActivityMember{
    private User user;
    private Activity activity;
    private int status;
}

现在我想获取ActivityMember组的所有用户,无论是否有他们的角色

e.g。 ActivityMember表
activity_id ----- user_id
78 --------------- 7
78 --------------- 31
78 --------------- 17

e.g。 RoleMember表
user_id --- activity_id ---角色
7 ------- 78 ----------程序员

输出我得到了 user_id ----角色
7 ----------程序员
31 ----------程序员
17 ----------程序员

我希望输出
user_id ----角色
7 ----------程序员
31 ----------
17 ----------

SQL:

select users.firstName, roleM.role from activity_member activityM
left join users users on activityM.user_Id = users.id
left join rolemember roleM on (roleM.assigned_to_user=activityM.user_Id and roleM.activityId=activityM.activity_id)
where activityM.activity_id=78 

我尝试过的HQL不起作用:

from  ActivityMember activityM  
right join activityM.user user
left join RoleMember roleM with (roleM.assignedToUser.id= activityM.user.Id and roleM.activityId=activityM.activityId)
where
activityM.activity.id=?  

使用HQL我得到了这个例外

Caused by: org.hibernate.hql.ast.QuerySyntaxException: Path expected for join!

0 个答案:

没有答案