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