【发布时间】:2012-06-19 06:38:21
【问题描述】:
我有 4 个实体:
User、Teacher、Student、Course
还有 4 张桌子:
t_user、t_teacher_course、t_student_course、t_course
Teacher 和 Student 扩展 User(带有描述符)并与 @ManyToMany 有关系 Course(User 没有)
Teacher的关系存储在t_teacher_course中,Student的关系存储在t_student_course中。
现在我想在一个查询中选择所有有课程的用户(如果存在)
select u from User u left join fetch u.courses c(注意用户没有课程)
这个选择产生了这样的东西:
select
...
from
T_USER user0_
left outer join
T_TEACHER_COURSE course1_
on user0_.USERID_=courses1_.TEACHER_
left outer join
T_COURSE course2_
on courses1_.LANE_=course2_.COURSENAME_
where
user0_.GROUP_=?
如您所见,Hibernate 没有加入 t_student_course 表
我正在使用 Hibernate 4.1Final
问题: Hibernate 是否支持这样的查询
a) 如果支持,那么为什么它没有为Student 实体获取课程?
b) 如果不支持,我如何选择所有使用 JPQL 的课程的用户?
【问题讨论】: