【发布时间】:2010-01-20 22:19:28
【问题描述】:
我有一个包含子列表的父类。在 cascade.all 开启的情况下,我将父级和子级映射为双向,并在父级上设置了一个 has-many 和一个逆向。如果我修改了子列表中的对象,但没有在父级上的属性,nHibernate 不会保存子级。如果我修改父级的属性,一切都会保存得很好。这是设计使然还是我需要设置特殊属性?
【问题讨论】:
-
您是在父映射中映射了子,还是在子映射中映射了父,或者两者都有?
-
两者如下: (Parent) HasMany
(x => x.Initiatives).KeyColumns.Add("ProjectId").AsBag().Cascade.SaveUpdate().LazyLoad() 。逆(); (子) 参考 (x => x.ParentProject).Column("ProjectId").Cascade.SaveUpdate(); -
我相信你必须在 Parent 上调用 save 才能让它拯救孩子。
-
谢谢,但我打电话给父母保存。问题是,如果 a 不修改父级上的简单属性,则不会触发子级的保存。如果我修改父级的简单属性,则子级更改保存正常。
标签: nhibernate orm