在hibernate映射中,多对多映射是最麻烦,最复杂的映射,通常情况下我们都将其转化为多对一映射来提高效率。
本文以老师与课程的对应关系(一个老师可以交多门课程,一门课程可以由多个老师任教)为案例讨论转化的实现:重点考虑其映射文件的配置。
显然以上关系,通过一个中间表(teacher_course),我们可以将其简化成两个多对一得关系:
teacher_course 与teacher 多对一;
teacher_course 与course 多对一;
建立Teacher.java 文件
Teacher.hbm.xml 文件
建立Course.java文件
相应Course.hbm.xml
接下来建立一个中间类,取代多对多映射
建立TeacherCourse.java 文件
相应TeacherCourse.hbm.xml
至此,三者之间的映射关系就建立完成。
可用如下测试类,测试:
建立Many2Many.java文件