如果多个线程操作基于同一个查询结构对表中的记录进行修改,那么后修改的记录将会覆盖前面修改的记录,前面的修改就丢失掉了,这就叫做更新丢失。
Serializable可以防止更新丢失问题的发生。其他的三个隔离级别(Read uncommitted isolation、Read committed isolation、Repeatable read isolation)都有可能发生更新丢失问题。

Serializable虽然可以防止更新丢失,但是效率太低,通常数据库不会用这个隔离级别,所以我们需要其他的机制来防止更新丢失。解决办法:

悲观锁:使用session.get(Customer.class, 1,LockMode.UPGRADE); 方法

乐观锁:在对应的JavaBean中添加一个属性,名称可以是任意的。例如:private Integer version; 提供get和set方法。在映射的配置文件中,提供<version name="version"/>标签即可。

最新文章

  1. 原创jquery插件treeTable(转)
  2. oracle报错:ORA-00054: 资源正忙,要求指定 NOWAIT
  3. orientation和gravity的区别
  4. Android引用百度定位API第三方组件后导致其它.so文件无法正常加载的问题
  5. cep
  6. 关于js中return false、event.preventDefault()和event.stopPropagation()
  7. C语言排序算法复习
  8. Haskell趣學指南--这个有意思
  9. 华为上机题汇总----java
  10. php des 加密类
  11. [HDOJ2572]终曲
  12. 自定义控件,上图下字的Button,图片任意指定大小
  13. 使用Ext JS,不要使用页面做组件重用,尽量不要做页面跳转
  14. GitHub学习笔记:远程端的操控
  15. Linux 的进程间通信:管道
  16. 前端特效demo | 一起围观 10 种创意时钟
  17. 阿里分布式服务框架Dubbo的架构总结
  18. Linux 典型应用之常用命令
  19. 【转】MySQL— 索引
  20. SQL Server异常汇总

热门文章

  1. tomcat solr 限制ip
  2. linux日常管理-netstat查看端口
  3. Linux/Unix 指令使用说明的格式介绍(the Bash Command &#39;Usage&#39; Syntax)
  4. 《精通Spring4.X企业应用开发实战》读后感第五章(FactoryBean)
  5. 【NLP】中文分词:原理及分词算法
  6. CSS类名命名规则
  7. SQL数据库操作整理
  8. 【转】C# 使用正则表达式去掉字符串中的数字,或者去掉字符串中的非数字
  9. 洛谷P3258 [JLOI2014]松鼠的新家
  10. retrying模块的安装及使用