多对多 映射 检索

来源:互联网 发布:淘宝刷收藏软件 编辑:程序博客网 时间:2024/05/01 23:31
package com.lan.Hib;import java.util.HashSet;import java.util.LinkedHashSet;import java.util.Set;import org.hibernate.HibernateException;import org.hibernate.Session;import org.hibernate.Transaction;import com.lan.Hib.domain.Student;import com.lan.Hib.domain.Teacher;public class Many2Many {public static void main(String[] args) {add();query(1);}static void add(){Session session = null;Transaction tx = null;try {Set<Teacher> teachers = new LinkedHashSet<Teacher>();Teacher teacher1 = new Teacher();Teacher teacher2 = new Teacher();teacher1.setName("teacher1 name");teacher2.setName("teacher2 name");teachers.add(teacher1);teachers.add(teacher2);Set<Student> students = new LinkedHashSet<Student>();Student student1 = new Student();Student student2 = new Student();student1.setName("student1 name");student2.setName("student2 name");students.add(student1);students.add(student2);teacher1.setStudents(students);teacher2.setStudents(students);//student1.setTeachers(teachers);//student2.setTeachers(teachers);session = HibernateUtil.getSession();tx = session.beginTransaction();session.save(teacher1);session.save(teacher2);session.save(student1);session.save(student2);tx.commit();} catch (HibernateException e) {if (tx != null) {tx.rollback();}throw e;} finally{if(session != null){session.close();}}}static void query(int id){Session session = null;Transaction tx = null;try {session = HibernateUtil.getSession();tx = session.beginTransaction();Teacher teacher = (Teacher) session.get(Teacher.class, id);System.out.println("students size:"+ teacher.getStudents().size());Student[] students =  teacher.getStudents().toArray(new Student[0]);for(int i = 0;i < students.length;i++){System.out.println(students[i].getName());}tx.commit();} finally{if(session != null){session.close();}}}}


package com.lan.Hib.domain;import java.util.Set;public class Teacher {private int id;private String name;private Set<Student> students;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;}}

<?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="com.lan.Hib.domain"><class name="Teacher" ><id name="id" column="id"> <!--属性   字段--><generator class="native"/></id><property name="name"/><set name="students" table="teacher_student"><key column="teacher_id"></key><many-to-many class="Student" column="student_id"/></set></class></hibernate-mapping>


package com.lan.Hib.domain;import java.util.Set;public class Student {private int id;private String name;private Set<Teacher> teachers;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;}}

<?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="com.lan.Hib.domain"><class name="Student"><id name="id" column="id"> <!--属性   字段--><generator class="native"/></id><property name="name"/><set name="teachers" table="teacher_student"><key column="student_id"></key><many-to-many class="Teacher" column="teacher_id"/></set></class></hibernate-mapping>



原创粉丝点击