hibernate 多对多关系补充

来源:互联网 发布:矩阵开方 编辑:程序博客网 时间:2024/05/18 03:47

Many2Many.java

package cn.itcast.dao.test;import java.util.HashSet;import java.util.Set;import org.hibernate.Session;import org.hibernate.Transaction;import cn.itcast.dao.HibernateUtil;import cn.itcast.domain.Department;import cn.itcast.domain.Employee;import cn.itcast.domain.Student;import cn.itcast.domain.Teacher;public class Many2Many {public static void main(String[] args) {//add();query(3);}static void add(){Session s=null;Transaction tx=null;try {Set<Teacher> teachers=new HashSet<Teacher>();Teacher teacher1=new Teacher();teacher1.setName("teacher1");teachers.add(teacher1);Teacher teacher2=new Teacher();teacher2.setName("teacher2");teachers.add(teacher2);Set<Student> students=new HashSet<Student>();Student student1=new Student();student1.setName("student1");students.add(student1);Student student2=new Student();student2.setName("student2");students.add(student2);student1.setTeachers(teachers);student2.setTeachers(teachers);s=HibernateUtil.getSession();tx=s.beginTransaction();s.save(teacher1);s.save(teacher2);s.save(student1);s.save(student2);tx.commit();} finally {if (s!=null)s.close();}}static void query(int id){Session s=null;Transaction tx=null;try {s=HibernateUtil.getSession();tx=s.beginTransaction();Teacher teacher=(Teacher)s.get(Teacher.class,id);System.out.println("学生数量"+teacher.getStudents().size());tx.commit();} finally {if (s!=null)s.close();}}}