考虑一个简单的数据库模式:Hibernate映射通过另一个实体
User Course StudentCourse Student
+-------------+ +-------------+ +-------------+ +-------------+
| -user_id |1 *| -course_id |1 *| -course_id |* 1| -student_id |
| |---->| -user_id |---->| -student_id |---->| |
+-------------+ +-------------+ +-------------+ +-------------+
[1 *] = 1 to many relationship
我已经创建了一个用户,当然,和Student对象,实体和设置以下映射:
User -> Course - one to many
Course -> Student - many to many
在我的Java类我可以通过调用user.getCourses()
访问用户的课程,我可以通过调用course.getStudents()
访问课程中的所有学生。 我希望能够找到所有的学生在所有的课程像user.getCourse().getStudents()
教导的所有课程,但因为user.getCourses()
返回Collection<Course>
我不能在集合上调用course.getStudents()
。 我应该如何使用Hibernate来实现这一点?命名查询是我唯一的选择吗?