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

来源:互联网 发布:gta5小丑女捏脸数据 编辑:程序博客网 时间:2024/05/21 22:49

最近开发一个项目使用了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

原创粉丝点击