多对多关联的例子

来源:互联网 发布:javascript not 编辑:程序博客网 时间:2024/06/07 14:00

多对多关联的例子

学生实体类

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>

 

原创粉丝点击