表关系配置

多对多关系(方式一)
<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>
相关文章
相关标签/搜索