many-to-many双向关联映射

Teacher.java

 

[java] view plaincopy
 
  1. package com.model;  
  2.   
  3. import java.util.HashSet;  
  4. import java.util.Set;  
  5.   
  6. public class Teacher {  
  7.     private int id;  
  8.     private String name;  
  9.     private Set<Student> students = new HashSet<Student>();  
  10.     public int getId() {  
  11.         return id;  
  12.     }  
  13.     public void setId(int id) {  
  14.         this.id = id;  
  15.     }  
  16.     public String getName() {  
  17.         return name;  
  18.     }  
  19.     public void setName(String name) {  
  20.         this.name = name;  
  21.     }  
  22.     public Set<Student> getStudents() {  
  23.         return students;  
  24.     }  
  25.     public void setStudents(Set<Student> students) {  
  26.         this.students = students;  
  27.     }  
  28.       
  29. }  



 

Student.java

 

[java] view plaincopy
  1. package com.model;  
  2.   
  3. import java.util.HashSet;  
  4. import java.util.Set;  
  5.   
  6. public class Student {  
  7.     private int id;  
  8.     private String name;  
  9.     private Set<Teacher> teachers = new HashSet<Teacher>();  
  10.     public int getId() {  
  11.         return id;  
  12.     }  
  13.     public void setId(int id) {  
  14.         this.id = id;  
  15.     }  
  16.     public String getName() {  
  17.         return name;  
  18.     }  
  19.     public void setName(String name) {  
  20.         this.name = name;  
  21.     }  
  22.     public Set<Teacher> getTeachers() {  
  23.         return teachers;  
  24.     }  
  25.     public void setTeachers(Set<Teacher> teachers) {  
  26.         this.teachers = teachers;  
  27.     }  
  28. }  



 

Teacher.hbm.xml

 

[html] view plaincopy
  1. <?xml version="1.0"?>  
  2. <!DOCTYPE hibernate-mapping PUBLIC  
  3.         "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  
  4.         "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">  
  5.          
  6. <hibernate-mapping package="com.model">  
  7.     <class name="Teacher" table="teacher">  
  8.         <id name="id" column="id">  
  9.             <generator class="native"></generator>  
  10.         </id>  
  11.         <property name="name" column="name"></property>  
  12.         <set name="students" table="s_t" inverse="true">  
  13.             <key column="teacherId"></key>  
  14.             <many-to-many column="studentId" class="Student"></many-to-many>  
  15.         </set>  
  16.     </class>  
  17. </hibernate-mapping>  



 

Student.hbm.xml

 

[html] view plaincopy
  1. <?xml version="1.0"?>  
  2. <!DOCTYPE hibernate-mapping PUBLIC  
  3.         "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  
  4.         "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">  
  5.          
  6. <hibernate-mapping package="com.model">  
  7.     <class name="Student" table="student">  
  8.         <id name="id" column="id">  
  9.             <generator class="native"></generator>  
  10.         </id>  
  11.         <property name="name" column="name"></property>  
  12.         <set name="teachers" table="s_t">  
  13.             <key column="studentId"></key>  
  14.             <many-to-many column="teacherId" class="Teacher"></many-to-many>  
  15.         </set>  
  16.     </class>  
  17.       
  18. </hibernate-mapping>  



 

单元测试:

 

[java] view plaincopy
  1. @Test  
  2. public void t(){  
  3.     Session session = HibernateUtil.getInstance().getSession();  
  4.     session.beginTransaction();  
  5.       将夜www.jiangyea.com
  6.     Student s = new Student();  
  7.     s.setName("ss");  
  8.       
  9.     Teacher t = new Teacher();  
  10.     t.setName("t");  
  11.       
  12.     s.getTeachers().add(t);  
  13.     //t.getStudents().add(s);  
  14.       
  15.     session.save(s);  
  16.     session.save(t);  
  17.       
  18.     session.getTransaction().commit();  
  19.     session.close();  
  20. }  
posted @ 2013-09-13 14:44  刘俊鹏123  阅读(222)  评论(0编辑  收藏  举报
重生之大文豪