hibernate 多对多 配置
1. 创建表Teacher和Student和中间表teacher_student
?
Session session = null; // 一级缓存TblUser user = null;try{session = HibernateSessionFactory.getSession();session.beginTransaction();Set<Teacher> teachers = new HashSet<Teacher>();Set<Student> students = new HashSet<Student>();// 初始化老师Teacher tWang = new Teacher();tWang.setName("王");Teacher tZhang = new Teacher();tZhang.setName("张");teachers.add(tWang);teachers.add(tZhang);// 初始化学生Student s1 = new Student();Student s2 = new Student();Student s3 = new Student();s1.setName("刘另一");s2.setName("任汉卿");s3.setName("付博文");students.add(s1);students.add(s2);students.add(s3);// teacher--->stutWang.setStus(students);tZhang.setStus(students);// stu---->teachers1.setTeachers(teachers);s2.setTeachers(teachers);s3.setTeachers(teachers);// save to dbsession.save(tWang);session.save(tZhang);session.save(s1);session.save(s2);session.save(s3);session.getTransaction().commit();}catch(Exception e){e.printStackTrace();session.getTransaction().rollback();}结果:Hibernate: insert into zf.teacher (name) values (?)Hibernate: insert into zf.student (name) values (?)Hibernate: insert into zf.teacher (name) values (?)Hibernate: insert into zf.student (name) values (?)Hibernate: insert into zf.student (name) values (?)Hibernate: insert into teacher_student (sid, tid) values (?, ?)Hibernate: insert into teacher_student (sid, tid) values (?, ?)Hibernate: insert into teacher_student (sid, tid) values (?, ?)Hibernate: insert into teacher_student (sid, tid) values (?, ?)Hibernate: insert into teacher_student (sid, tid) values (?, ?)Hibernate: insert into teacher_student (sid, tid) values (?, ?)??
?
?