我有 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表
我正在使用休眠 4.1Final
问题:Hibernate 是否支持这样的查询
a)如果支持,那么为什么它没有为Student
实体获取课程?
b) 如果不支持,我该如何选择所有使用 JPQL 的课程的用户?