最近开发一个项目使用了Nhibernate出现了如下问题deleted object would be re-saved by cascade (remove deleted object from

本文探讨了在使用Nhibernate进行项目开发时遇到的deletedobjectwouldbere-savedbycascade问题,详细分析了cascade配置的含义及应用,并通过实例解释了设置单向映射时如何正确配置cascade以避免出现孤儿对象导致的问题。
摘要由CSDN通过智能技术生成

最近开发一个项目使用了Nhibernate出现了如下问题deleted object would be re-saved by cascade (remove deleted object from……

到目前为止,还没有解决呢!在网上百度,收到的都是些关于hibernate的此问题的回答,所以目前还在纠结,继续寻找答案中……

情况主要如下:

              有一个Course表,一个Course与Student关联的表CourseStudents表,在Course表中设置了one-to-many,在CourseStudents表中没有设置many-to-one,而只是设置了CourseId;根据“one-to-many可以设置单向和双向映射,设置单向时Child一段不设置many-to-one,而设置了ParentId的属性”,这种设置方式是没错的,但是删除时却出现了问题。

cascade配置的分析:

cascade:默认为none;级联。指明哪些操作会从对象级联到关联的对象。

orphans:孤儿,即没有父对象的子对象。对于代码child.Parent=null,对于数据库Child表中ParentId为Null的数据。

delete-orphans:表示cascade时删除孤儿。

以下是cascade可以配置的值:

all:对应save,delete,update所有操作

all-delete-orphan:对应save,delete,update+delete orphans

delete-orphan:对应delet+delete orphans

none:no cascade

delete:delete

save-update:save,update

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值