many-to-many双向关联映射

来源:互联网 发布:python txt转pdf 编辑:程序博客网 时间:2024/04/30 13:07

Teacher.java

package com.model;import java.util.HashSet;import java.util.Set;public class Teacher {private int id;private String name;private Set<Student> students = new HashSet<Student>();public int getId() {return id;}public void setId(int 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;}}


Student.java

package com.model;import java.util.HashSet;import java.util.Set;public class Student {private int id;private String name;private Set<Teacher> teachers = new HashSet<Teacher>();public int getId() {return id;}public void setId(int 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;}}


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.model"><class name="Teacher" table="teacher"><id name="id" column="id"><generator class="native"></generator></id><property name="name" column="name"></property><set name="students" table="s_t" inverse="true"><key column="teacherId"></key><many-to-many column="studentId" class="Student"></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.model"><class name="Student" table="student"><id name="id" column="id"><generator class="native"></generator></id><property name="name" column="name"></property><set name="teachers" table="s_t"><key column="studentId"></key><many-to-many column="teacherId" class="Teacher"></many-to-many></set></class></hibernate-mapping>


单元测试:

@Testpublic void t(){Session session = HibernateUtil.getInstance().getSession();session.beginTransaction();Student s = new Student();s.setName("ss");Teacher t = new Teacher();t.setName("t");s.getTeachers().add(t);//t.getStudents().add(s);session.save(s);session.save(t);session.getTransaction().commit();session.close();}



原创粉丝点击