首页 > Web开发 > 详细

hibernate4之多对多关系映射(五)

时间:2016-02-17 22:36:46      阅读:150      评论:0      收藏:0      [点我收藏+]

示例:一个老师(Teacher)有多个学生(Student),一个学生有多个老师。

public class Teacher {
    private Integer id;
    private String name;
    private Set<Student> students = new HashSet<Student>();
    // getter and setter
}
public class Student {
    private Integer id;
    private String name;
    private Set<Teacher> teachers = new HashSet<Teacher>();
    // getter and setter
}

用XML映射

<hibernate-mapping package="com.shen.hibernate4.entity">
    <class name="Teacher" table="tb_teacher">
        <id name="id">
            <generator class="identity" />
        </id>
        <property name="name" />
        <set name="students" table="tb_student_teacher">
            <key column="teacher_id" />
            <many-to-many class="Student" column="student_id" />
        </set>
    </class>
</hibernate-mapping>
<hibernate-mapping package="com.shen.hibernate4.entity">
    <class name="Student" table="tb_student">
        <id name="id">
            <generator class="identity" />
        </id>
        <property name="name" />
        <!-- 不维护关联关系 -->
        <set name="teachers" table="tb_student_teacher" inverse="true">
            <key column="student_id" />
            <many-to-many class="Teacher" column="teacher_id" />
        </set>
    </class>
</hibernate-mapping>



用@Annotation映射

@Entity
@Table(name = "tbl_teacher")
public class Teacher {

        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private Integer id;
        private String name;
        
        @ManyToMany
        @JoinTable(name = "tb_student_teacher", joinColumns = @JoinColumn(name = "teacher_id"), inverseJoinColumns = @JoinColumn(name = "student_id"))
        private Set<Student> students = new HashSet<Student>();
        // getter and setter
}
@Entity
@Table(name = "tbl_student")
public class Student {

        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private Integer id;
        private String name;
        
        //不维护关联关系
        @ManyToMany(mappedBy = "students")
        private Set<Teacher> teachers = new HashSet<Teacher>();
        // getter and setter
}



本文出自 “冰葫芦” 博客,请务必保留此出处http://shenlang7.blog.51cto.com/3102414/1742813

hibernate4之多对多关系映射(五)

原文:http://shenlang7.blog.51cto.com/3102414/1742813

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!