假设我有一个名为Parent的表,在数据库中有5行Children信息。
如果我在应用程序层中删除父列表中的所有子项并添加一个在db中不存在的新子项然后运行SaveOrUpdate,表中的现有子项是否会被删除或者只是将不存在的子项添加到表中?
编辑:我得到了Cascade.ALL,但没有在我的映射中删除orphan。答案 0 :(得分:1)
如果您使用级联,则只有删除父级才会删除所有子项。如果删除子项并将其父属性重置为null,则这些子记录仅使用空父引用进行更新,但不会从数据库中删除。
您可以在nhibernate documentation(第21.3章。级联生命周期)中找到解释和示例。