【问题标题】:Is it possible to suppress the Update after Insert in NHibernate?是否可以在 NHibernate 中插入后抑制更新?
【发布时间】:2023-03-28 07:01:01
【问题描述】:

我一直致力于研究使用 NHibernate 的新应用程序的数据库性能问题。我注意到在某些表上,NH 会插入一行,然后使用完全相同的数据更新同一行。到目前为止,我收集到的是,插入后的更新是在定义了多对一关系的表上完成的。

无论如何,我都希望 NH 认为数据是相同的并抑制额外的更新。有没有办法完全禁止这个额外的更新?

【问题讨论】:

  • 代码?插入后更新所有列是不正常的。

标签: nhibernate


【解决方案1】:

听起来您在多对一关联上具有双向关系。

解决该问题的方法是在关系的一对多端添加inverse="true"Here is an example.

插入由保存其数据的子节点执行。更新是由父设置数据库中子记录的 parentId 来执行的。如果关系是单向的,则第一个插入将没有 parentId,并且需要更新。正如您所描述的,对于双向关系,更新是多余的。 inverse="true" 告诉父母,孩子负责维持关系,从而防止额外的更新。

【讨论】:

    猜你喜欢
    • 2012-01-20
    • 2017-11-23
    • 2014-06-19
    • 1970-01-01
    • 2019-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-27
    相关资源
    最近更新 更多