多对多关系(方式一) <hibernate-mapping package="com.bjsxt.hibernate.po"> 学生和课程多对多 <class name="Course" table="t_course"> <id name="courseId" column="course_id"> <generator class="assigned"></generator> </id> <property name="cname"/> <set name="stuSet" table="stu_course" > // stu_course为中间表 <key column="course_id"></key> // course_id做为stu_course的外键 <many-to-many class="Students" column="stu_id"></many-to-many> </set> </class> </hibernate-mapping> <hibernate-mapping package="com.bjsxt.hibernate.po"> <class name="Students" table="t_students" > <id name="stuId" column="stu_id"> <generator class="assigned"></generator> </id> <property name="stuName" column="stu_name" /> <property name="age" /> <property name="email" /> <set name="courseSet" table="stu_course" >// stu_course为中间表 <key column="stu_Id"></key> //stu_id做为stu_course的外键 <many-to-many class="Course" column="course_id" ></many-to-many> </set> </class> </hibernate-mapping> 多对多关系(方式二) <hibernate-mapping package="com.bjsxt.hibernate.po"> <class name="Course" table="t_Course" > <id name="courseId" column="course_id"> <generator class="assigned"></generator> </id> <property name="cname" /> <set name="stuCourseSet" > <key column="course_id"></key>// course_id做为stuCourseSet表的外键 <one-to-many class="StudentsCourse"></one-to-many> //课程表和中间表的关系为一对多 </set> </class> </hibernate-mapping> <hibernate-mapping package="com.bjsxt.hibernate.po"> <class name="Students" table="t_students" > <id name="stuId" column="stu_id"> <generator class="assigned"></generator> </id> <property name="stuName" column="stu_name" /> <property name="age" /> <property name="email" /> <set name="stuCourseSet"> <key column="stu_Id"></key>// stu_Id做为stuCourseSet表的外键 <one-to-many class="StudentsCourse"></one-to-many> //学生表和中间表的关系为一对多 </set> </class> </hibernate-mapping> 一对多关系 <hibernate-mapping package="com.bjsxt.hibernate.po"> 部门和员工一对多 <class name="Department" table="t_department"> <id name="deptId" column="dept_id"> <generator class="assigned"></generator> </id> <property name="dname" /> <set name="empSet" inverse="false" lazy="false" cascade="save-update"> <key column="dept_id"></key> // dept_id为员工表里的外键 <one-to-many class="Employee"/> </set> </class> </hibernate-mapping> <hibernate-mapping package="com.bjsxt.hibernate.po"> <class name="Employee" table="t_employee" > <id name="empId" column="emp_id"> <generator class="assigned"></generator> </id> <property name="ename" /> <property name="job" /> <property name="hiredate" /> <many-to-one name="department" column="dept_id" ></many-to-one>// dept_id为员工表里的外键 </class> </hibernate-mapping> 一对一关系 <hibernate-mapping package="com.bjsxt.hibernate.po"> 结婚中的男人和女人一对一 <class name="Man" table="t_man" > <id name="manId" column="man_id"> <generator class="foreign"> //外键加上惟一性约束 <param name="property">woman</param> </generator> </id> <property name="manName" column="man_Name"/> <one-to-one name="woman" class="Woman" ></one-to-one> </class> </hibernate-mapping> <hibernate-mapping package="com.bjsxt.hibernate.po"> <class name="Woman" table="t_woman"> <id name="womanId" column="woman_id"> <generator class="assigned"></generator> //关系由男人表维护,女表里没有男id </id> <property name="wname" /> <one-to-one name="man" class="Man" cascade="all" ></one-to-one> </class> </hibernate-mapping>