在多对多关联中,如果设置了inverse="true"就表示本方不进行关联的维护,由另一方进行关联的维护。
比如在Teacher和Student的双向关联中,如果Teacher.hbm.xml中是这样的:
<set name="students" table="teacher_student" inverse="true">
<key column="teacher_id"/>
<many-to-many class="Student" column="student_id"/>
</set>
那么即使写上:
Set<Student> students=new HashSet<Student>();
students.add(s1);
students.add(s2);
teacher.setStudents(students);
session.save(teacher);
那么Hibernate也只会向Teacher表中插入数据,而不向teacher_student表中插入数据。
如果要同时能够向teacher_student表中插入数据,需要将inverse设为false。