NHibernate: Session.Save 采用版本控制时无必要地自动Update版本字段的问题
2010-10-11 20:04
337 查看
最近发现一个问题,Session.Save(entity)时,如果entity是新实体(version字段为0,假设0为unsaved-value),则NHibernate执行的SQL除了应该出现的Insert语句之外,还有一个Update version字段设置其加一的Update语句。而此前Insert语句已经设置version字段值为一,所以此Update除了Update version字段为2外不Update任何其它字段,导致一条Insert语句最终version为2,且影响性能(在批量插入的时候影响明显,因为不在batchupdate的size控制之下)是无意义的一条语句。可以采用如下方式避免:
如果这么写,就杯具了,因为所有通过Session加载的对象在Session中都会变成dirty的----因为ModifiedOn始终在变化,于是Session.Flush或者Trasaction.Commit的时候所有的对象都会Update...
public virtual DateTime ModifiedOn { get { return DateTime.Now; } set { _modifiedOn = value; } }
如果这么写,就杯具了,因为所有通过Session加载的对象在Session中都会变成dirty的----因为ModifiedOn始终在变化,于是Session.Flush或者Trasaction.Commit的时候所有的对象都会Update...
相关文章推荐
- 解决Hibernate的session.save/update/delete操作无效问题(事务管理)
- 01-03-02-2【Nhibernate (版本3.3.1.4000) 出入江湖】CRUP操作-Save方法的一些问题
- 关于eclipse中的maven-->update project时自动变更jdk版本呢问题
- session_set_save_handler函数控制session有效期问题
- Provisioning Services 7.8 入门系列教程之十一 通过版本控制自动更新虚拟磁盘
- 教大家关闭语音控制功能(避免自动拨号的问题)
- NHibernate查询导致Update问题
- Ueditor(三):解决1.4版本中取消自动保存不成功的问题
- Mac下使用svnx进行版本控制,并解决无法上传.a库文件的问题
- 关于Oracle字段类型Date使用mybatis generator自动生成工具出现的查询日期只精确到年月日问题
- 一份思考—版本间共性问题提炼与控制
- Intellij idea Language level和Java Compiler版本自动变化问题
- SVN版本控制图标经常延时显示或未显示问题解决方法
- 使用瓦力部署使用git进行版本控制的thinkphp5项目到Linux服务器遇到的问题
- [版本控制]subversion之svnserver配置陷阱-空格问题
- 解决IDEA自动重置LanguageLevel和JavaCompiler版本的问题
- CodeIgniter采用config控制的多语言实现根据浏览器语言自动转换功能
- js中如果long类型值过长,字段自动截取问题
- session的一个版本兼容性问题
- android studio 3.0 跨版本应用内升级问题解决(检查升级只有download按钮,无Update and restart按钮)