我已经抛出研究数据库性能问题与使用NHibernate的新应用程序。我注意到,在一些表上NH执行了一行插入操作,然后更新了具有完全相同数据的同一行。到目前为止,我收集到的是插入后的更新在定义了多对一关系的表上完成。在任何情况下,我都希望NH能够指出数据是相同的,并抑制额外的更新。有没有办法抑制这种额外的更新?是否有可能在NHibernate中插入后禁止更新?
6
A
回答
6
听起来好像你在多对一的关联上有双向关系。
解决该问题的方法是在关系的一对多一侧添加inverse="true"
。 Here is an example。
插入由孩子保存其数据执行。更新由父级设置数据库中子记录的parentId执行。如果关系是单向的,那么第一个插入将没有parentId,并且需要更新。在双向关系中,更新过程如您所描述的那样是多余的。 inverse="true"
告诉父母,孩子负责维护关系,从而防止额外的更新。
+3
-1,因为这发生在非双向关系上。 – BradLaney 2012-02-07 23:26:06
相关问题
- 1. 是否有可能更新然后在mysql中插入?
- 2. 插入后NHibernate仍然会更新
- 3. 是否有可能在ajax更新后重新生成分页?
- 4. 是否有可能在编译时禁止从类中派生?
- 5. 如果可能,如何更新,否则在oracle中插入
- 6. NHibernate如何确定是否插入或更新记录?
- 7. 是否可以在单个sqlite语句中插入和更新?
- 8. Postgres中的AFTER触发器是否会阻止插入/更新?
- 9. 插入或更新是否存在MYSQL
- 10. 是否有可能禁止取得文件的所有权?
- 11. 是否可以在mysqldb中executemany插入后获取所有lastrowids?
- 12. 是否有理由在插入/更新中使用CURRENT_TIMESTAMP?
- 13. 是否有可能中止同步XmlHttpRequest?
- 14. Nhibernate在添加Event Listener后插入时应该更新
- 15. 检查密钥是否存在,然后插入或更新
- 16. 是否有可能在过去推送提交树中插入新提交?
- 17. 更新记录是否存在;否则在Oracle中插入
- 18. SQL - 是否有可能在插入值的内部有if if
- 19. 是否有可能在C++中禁止在编译时调用某个函数?
- 20. 是否有可能禁止注释继承?
- 21. 是否有可能禁止与tastypie资源的索引?
- 22. XQuery更新:插入或替换取决于节点是否存在不可能?
- 23. 是否有可能在MongoDB中进行原子批量更新?
- 24. 是否有可能在jdbccursoritemreader数据库中更新
- 25. 是否有可能在RPG Maker XP中更新Ruby版本
- 26. 是否有可能在代码中更新WP7锁定屏幕?
- 27. 是否有可能禁用iOS上
- 28. 在jQuery中插入后更新DOMD
- 29. 是否有可能在NHibernate中做标准偏差?
- 30. 是否有可能在1个sql更新语句中更新3个sql行
代码?插入后的所有列的更新不正常。 – dotjoe 2009-11-05 21:07:18