Hibernate中关于多对多关联表中数据的删除问题

来源:互联网 发布:祁大侠 编程 编辑:程序博客网 时间:2024/04/29 07:01

原因:与其他表有多对多关系

解决方法:/**

         * 多对多 被控方删除(可以删除中间表记录)

       * 下面例子中,TeacherCours有多对多关系,如果要删除一个Teacher

       * 则要按以下方法执行

         */

        public void testDeleteByInverse2() {

                String id = "402881ee175f04be01175f04c06c0002";

                Session session = HibernateSessionFactory.getSession();

                session.beginTransaction();

 

                Teacher t1 = (Teacher) session.get(Teacher.class, id);

              //先把Course中有t1的记录把t1移除

                Set<Course> cs = t1.getCourses();

                for (Course c : cs) {

                        c.getTeachers().remove(t1);

                }

              //如果hibernate报错,则加上下面两句试试

              //session. getTransaction().commit();

              //session.beginTransaction();

 

                session.delete(t1);

                session.getTransaction().commit();

                session.close();

        }

原创粉丝点击