delete和all-delete-orphan在进行删除操作时的不同
来源:互联网 发布:淘宝金币抵扣怎么设置 编辑:程序博客网 时间:2024/06/05 23:58
delete:当通过Session的delete()方法删除当前对象时,级联删除所有关联的对象。
delete-orphan:删除所有和当前对象解除关联关系的对象。
all-delete-orphan:包含了delete和delete-orphan的行为。
-----------------------------------------------------------------------------------------
如下代码:
- //删除酒店对象
- private void delete(){
- TbHotelDAO hotelDAO =new TbHotelDAO();
- TbHotel hotel = (TbHotel) hotelDAO.findByHotelName("混蛋").get(0);
- Iterator it = hotel.getTbBuildings().iterator();
- TbBuilding building1 = (TbBuilding) it.next();
- building1.setTbHotel(null);
- it.remove();
- hotelDAO.delete(hotel);
- }
当:cascade="delete",执行上面delete方法,building1对象的与hotel解除了关联,所以它不会被删除。该酒店的参照物以及酒店本身都会被删除。
当:cascade="all-delete-orphan",执行上面delete方法,building1对象与hotel解除了关联,它与该酒店的参照物以及酒店本身都会被删除。
注意上面的代码中有一句:building1.setTbHotel(null);
当cascade="all-delete-orphan",去掉这一行代码也没有关系,因为接下来的一行代码it.remove();还是会让building1对象丧失与酒店的关联,于是它仍旧会被删除,同时酒店和其关联参照物也会被删除。
但是,当cascade="delete",去掉这一行会出现错误,因为building1对象只是丧失了与酒店的关联,而
不会被删除掉,并且它的hotel_id没有被设置为null,所以,在删除数据库中酒店数据的时候,就会违反外键约束的原则,从而出现错误。
0 0
- delete和all-delete-orphan在进行删除操作时的不同
- delete和all-delete-orphan在进行删除操作时的不同
- 在进行jpa更新操作中报异常Cascade="All-Delete-Orphan" 处理
- all-delete-orphan
- all-delete-orphan
- Hibernate all-delete-orphan
- all-delete-orphan
- HIbernate级联删除(hibernate 双向一对多中 主表设置cascade="all-delete-orphan",在save时出现
- all-delete-orphan--父子关系的处理方式
- 关于hibernate中使用all-delete-orphan的用法
- 晕,hibernate 的 merge和cascade="all-delete-orphan"要慎重合在一起使用
- Don't dereference a collection with cascade="all-delete-orphan" ,这是14年遇到的问题,最近在博客上进行整理汇总
- cascade="all-delete-orphan"时容易出现的一个异常
- hibernate cascade属性 all-delete-orphan
- cascade="all-delete-orphan" 处理
- cascade="all-delete-orphan" 处理
- hibernate cascade属性 all-delete-orphan
- hibernate cascade属性 all-delete-orphan
- NGUI系列教程六(序列帧动画)
- C#取SAP-RFC数据发邮件 自动提交BASIS指标(流星程序集之十二)
- NGUI系列教程七(3D视图&ScrollView)
- UVA 10285 Longest Run on a Snowboard
- [leetcode 83]Remove Duplicates from Sorted List
- delete和all-delete-orphan在进行删除操作时的不同
- sql数据 日期型数据模糊查询
- Resource leak: 'context' is never closed
- 创建Access数据的ODBC数据源时没有Access数据源驱动器
- SDUST_OJ-1608-斐波那契数列
- 苹果机(流星程序集之一)
- 赫夫曼树编码的表示与实现--自己写数据结构
- 第一篇
- QQ斗地主记牌器(流星程序集之二)