hibernate映射关系之多对多(二)

2014-11-24 01:37:20 · 作者: · 浏览: 1
过学生建立学生和课程之间的关系 */ student.setCourse(courses); session.save(student); transaction.commit(); session.close(); } /** * 已经存在一个课程,新建一个学生,并且建立该学生和该课程之间的关系 * Hibernate: select course0_.cid as cid0_0_, course0_.cname as cname0_0_, course0_.description as descript3_0_0_ from Course course0_ where course0_.cid= Hibernate: select max(sid) from Student Hibernate: insert into Student (sname, description, sid) values ( , , ) Hibernate: insert into student_course (sid, cid) values ( , ) 该sql语句是维护关系 */ @Test public void testSaveStudent_R(){ Session session = sessionFactory.openSession(); Transaction transaction = session.beginTransaction(); /** * 1、查找一个课程 * 2、新建一个学生 * 3、通过学生来维护该学生和课程之间的关系 */ //查找课程2 Course course = (Course)session.get(Course.class, 2L); //新建一个学生 Student student = new Student(); student.setSname("意门生"); student.setDescription("aa"); //通过学生来维护该学生和课程之间的关系 Set
courses = new HashSet (); courses.add(course); student.setCourse(courses); session.save(student); transaction.commit(); session.close(); } /** * 已经存在一个学生,新建一个课程,并且建立该学生和该课程之间的关系 */ @Test public void testSaveCourse_R(){ Session session = sessionFactory.openSession(); Transaction transaction = session.beginTransaction(); /** * 1、新建一个课程 * 2、查找学生 * 3、在学生原来的基础上新添加一门课程 */ //新建课程 Course course = new Course(); course.setCname("项目课"); course.setDescription("得意门生"); //查找学生 Student student = (Student)session.get(Student.class, 5L); Set courses = student.getCourse();//获取该学生现在所有的课程 courses.add(course); transaction.commit(); session.close(); } }