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

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

解决方法:/**

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

       * 下面例子中,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();

        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值