多对多关联的例子
学生实体类
public class Student {
private int id;
private String name;
private Set<Teacher> teachers;
教师实体类
public class Teacher {
private int id;
private String name;
private Set<Student>students;
Teacher.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.hbsi.domain">
<class name="Teacher" table="teacher">
<id name="id"column="id">
<generator class="native"/>
</id>
<property name="name"column="name" />
<!-- 集合属性的体现 多对多 table属性指定的是中间表的名字 -->
<set name="students"table="teacher_student">
<!--查中间表的外键 和老师的id的关联 老师的id-->
<key column="teacher_id"/>
<!-- 查学生的id和中间表的关系 -->
<many-to-many class="Student" column="student_id"></many-to-many>
</set>
</class>
</hibernate-mapping>
Student.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.hbsi.domain">
<class name="Student" table="student">
<id name="id"column="id">
<generator class="native"/>
</id>
<property name="name"column="name" />
<set name="teachers"table="teacher_student">
<key column="student_id"></key><!-- 查找这个学生被那个老师教 -->
<many-to-many class="Teacher" column="teacher_id"></many-to-many>
</set>
</class>
</hibernate-mapping>