Hibernate中多對多
阿新 • • 發佈:2018-06-12
for util .com borde org column nat open his
學生 - 老師
1 package com.zhangpn.entity; 2 3 import java.util.HashSet; 4 import java.util.Set; 5 6 public class Student { 7 private Long id; 8 private String name; 9 private Set<Teacher> teachers = new HashSet<>(); 10 11 public Long getId() { 12 returnStudentid; 13 } 14 15 public void setId(Long id) { 16 this.id = id; 17 } 18 19 public String getName() { 20 return name; 21 } 22 23 public void setName(String name) { 24 this.name = name; 25 } 26 27 public Set<Teacher> getTeachers() { 28 returnteachers; 29 } 30 31 public void setTeachers(Set<Teacher> teachers) { 32 this.teachers = teachers; 33 } 34 35 public Student() { 36 } 37 38 public Student(String name, Set<Teacher> teachers) { 39 this.name = name; 40 this.teachers = teachers;41 } 42 43 }
1 package com.zhangpn.entity; 2 3 import java.util.HashSet; 4 import java.util.Set; 5 6 public class Teacher { 7 private Long id; 8 private String name; 9 private Set<Student> students = new HashSet<>(); 10 11 public Long getId() { 12 return id; 13 } 14 15 public void setId(Long id) { 16 this.id = id; 17 } 18 19 public String getName() { 20 return name; 21 } 22 23 public void setName(String name) { 24 this.name = name; 25 } 26 27 public Set<Student> getStudents() { 28 return students; 29 } 30 31 public void setStudents(Set<Student> students) { 32 this.students = students; 33 } 34 35 public Teacher() { 36 } 37 38 public Teacher(String name, Set<Student> students) { 39 this.name = name; 40 this.students = students; 41 } 42 43 }Teacher
學生配置 - 老師配置
1 <?xml version="1.0"?> 2 <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 3 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 4 <hibernate-mapping> 5 <class name="com.zhangpn.entity.Student" table="STUDENT"> 6 <id name="id" type="java.lang.Long"> 7 <column name="ID" /> 8 <generator class="native" /> 9 </id> 10 <property name="name" type="java.lang.String"> 11 <column name="NAME" /> 12 </property> 13 <set name="teachers" table="STUDENT_TEACHER" inverse="false" lazy="true"> 14 <key> 15 <column name="STUDENTID" /> 16 </key> 17 <many-to-many class="com.zhangpn.entity.Teacher" column="TEACHERID"></many-to-many> 18 </set> 19 </class> 20 </hibernate-mapping>Student.hbm.xml
1 <?xml version="1.0"?> 2 <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 3 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 4 <hibernate-mapping> 5 <class name="com.zhangpn.entity.Teacher" table="TEACHER"> 6 <id name="id" type="java.lang.Long"> 7 <column name="ID" /> 8 <generator class="native" /> 9 </id> 10 <property name="name" type="java.lang.String"> 11 <column name="NAME" /> 12 </property> 13 <set name="students" table="STUDENT_TEACHER" inverse="false" lazy="true"> 14 <key> 15 <column name="TEACHERID" /> 16 </key> 17 <many-to-many class="com.zhangpn.entity.Student" column="STUDENTID"></many-to-many> 18 </set> 19 </class> 20 </hibernate-mapping>Teacher.hbm.xml
中間表
學生 | |
id | name |
中間表 | |
stu_id | tea_id |
老師 | |
id | name |
學生表
主鍵:ID
教師表
主鍵:ID
中間表:
主鍵:STUDENTID、TEACHERID
外鍵:STUDENTID、TEACHERID
Hibernate中多對多