Hibernate_映射_关联关系_多对多映射1

来源:互联网 发布:java开发平台结构图 编辑:程序博客网 时间:2024/05/22 00:12
多对多多对多Student.hbm.xml  Teacher.hbm.xml要说明的信息有:要说明的信息有:1,集合表(中间表)1,集合表(中间表)2,集合外键2,集合外键引用自已主键的那个引用自已主键的那个3,引用关联对象的那个外键 3,引用关联对象的那个外键 4,关联的实体类型4,关联的实体类型


学生映射文件

<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><!-- 导入包 --><hibernate-mapping package="cn.itcast.g_hbm_manyToMany"><!-- 类名 --><class name="Student" table="t_student"><id name="id" type="integer" column="id"><generator class="native" /></id><property name="name" type="string" column="name" /><!-- teachers属性,Set集合。表达的是本类与Teacher的多对多的关联关系 table属性:中间表(集合表)key子元素:集合外键 (引用当前表主键的那个外键)--><set name="teachers" table="t_teacher_student"><key column="studentId"></key><many-to-many class="Teacher" column="teacherId"></many-to-many></set></class></hibernate-mapping>

老师映射文件

<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><!-- 导入包 --><hibernate-mapping package="cn.itcast.g_hbm_manyToMany"><!-- 类名 --><class name="Teacher" table="t_teacher"><id name="id" type="integer" column="id"><generator class="native" /></id><property name="name" type="string" column="name" /><!-- students属性,Set集合。表达的是本类与Student的多对多的关联关系 table属性:中间表(集合表)key子元素:集合外键 (引用当前表主键的那个外键)--><set name="students" table="t_teacher_student"><key column="teacherId"></key><many-to-many class="Student" column="studentId"></many-to-many></set></class></hibernate-mapping>
学生实体类

package cn.itcast.g_hbm_manyToMany;import java.util.HashSet;import java.util.Set;/** * 学生 *  * @author 风清杨 * @version V1.0 */public class Student {private Long id;private String name;private Set<Teacher> teachers = new HashSet<Teacher>();// 关联得老师位public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Set<Teacher> getTeachers() {return teachers;}public void setTeachers(Set<Teacher> teachers) {this.teachers = teachers;}@Overridepublic String toString() {return "Student [id=" + id + ", name=" + name + "]";}}

老师实体类

package cn.itcast.g_hbm_manyToMany;import java.util.HashSet;import java.util.Set;/** * 老师 *  * @author 风清杨 * @version V1.0 */public class Teacher {private Long id;private String name;private Set<Student> students = new HashSet<Student>();// 关联的学生们public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Set<Student> getStudents() {return students;}public void setStudents(Set<Student> students) {this.students = students;}@Overridepublic String toString() {return "Teacher [id=" + id + ", name=" + name + "]";}}
组合映射文件

private static SessionFactory sessionFactory = new Configuration()//.configure()//.addClass(Student.class)// 添加Hibernate实体类(加载对应的映射文件).addClass(Teacher.class)// 添加Hibernate实体类(加载对应的映射文件).buildSessionFactory();



0 0
原创粉丝点击