【问题标题】:How to cascade save and delete of a non-collection entity?如何级联保存和删除非集合实体?
【发布时间】:2009-07-08 23:10:18
【问题描述】:

我有一个实体 A 有实体 B。

Class Entity A
{
    public EntityB;
}

Class Entity B
{
    public Entity A;
}

实体 B 与 A 是一对一的关系。我正在尝试使用级联保存,在保存实体 A 时删除,这样我就不必手动保存实体 B。应该自动完成。

我对实体 B 的映射如下所示:

<many-to-one name="EntityA" cascade="save-update"
    column="EntityASomeProperty" class="EntityA" />

保存 A 时,我无法自动保存实体 B。

【问题讨论】:

    标签: sql nhibernate hibernate


    【解决方案1】:

    看起来你定义了一个从 B 到 A 的级联,所以当你保存 EntityB 时,应该保存 EntityA。

    如果您希望在保存 EntityA 时保存 EntityB,则需要反转该配置。请注意,您应该选择一个您想要管理这种关系的方向,并始终从该方向工作。你可以映射两个方向,但是做一个逆向,这样hibernate就知道你打算从哪个方向管理它。

    如果确实如此,我还建议您使用 OneToOne 映射。

    【讨论】:

    • 嗨,我明白了。但是我的下一个问题是在 entityA 上创建一对一映射之后,这将节省 Entity B 我得到一个错误,该错误无法将 null 插入到其中一个列的 ENtityB 中。该列包含 entityA 属性(ENTityA Guid)。
    猜你喜欢
    • 2011-12-03
    • 2013-03-23
    • 2011-11-23
    • 2014-07-17
    • 2014-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多