公司拿到了BEA发过来的
Project Objectives Document<o:p></o:p>
Data Access Service (DAS)<o:p></o:p>
文挡。里面有一个内容:
Optimistic Concurrency Control – Ability to detect and report update collisions when applying a change summary.
所以看了一下hibernate 的锁的实现,总结如下:
1)Pessi Lock
对于Oracle/mysql/ms sql这3个Dialect,在设置了LocKMode.Upgrade的情况下,会自动生成 select ...fro update;不支持Pessi Lock的数据库就没有for udpate。
如果是Sybase,就需要自己在数据库中加"LOCK"字段,然后手工操作来实现PessiLock.
2) Opti Lock
2.1: Version方法
save的时候,自动设置version=0; load的时候,会load 本记录的version字段;update的时候,会自动加上 set version=1 ....where version=0
这样可以防止 第2类丢失更新的问题
2.2: timestamp方法
要求数据库该字段是 TIMESTAMP,只能精确到 秒,所以 在ms并发情况下还是可能出问题
2.3 配置方法
hibernate还提供了另外一个方法,如果数据库已经存在,而且没有做Opti Lock的字段的时候,可以配置optimistic-lock来实现。
不过实现方法是 update的时候 把全部字段/或者更新的字段 作为 条件,这样会比较影响性能。
分享到:
相关推荐
基于Hibernate的简单留言本是一个基本的Web应用程序,它使用Hibernate作为数据持久化层,用户可以通过该系统进行留言、查看留言以及回复等操作。这个系统展示了如何在实际项目中应用Hibernate来管理数据库交互。 ...
基于springmvc+Hibernate实现的在线购物商城.zip基于springmvc+Hibernate实现的在线购物商城.zip基于springmvc+Hibernate实现的在线购物商城.zip基于springmvc+Hibernate实现的在线购物商城.zip基于springmvc+...
在这个"基于Hibernate/DWR框架实现的Web项目"中,我们可以看到开发者利用了Java Web开发的强大工具,包括Hibernate作为持久层框架,Direct Web Remoting (DWR)作为前端与后端交互的桥梁,以及Oracle数据库作为数据...
**基于Hibernate的简单数据库实现** Hibernate是一个开源的对象关系映射(ORM)框架,它为Java开发者提供了方便的数据持久化服务,使得开发人员可以避免编写大量的SQL语句,从而更加专注于业务逻辑。通过Hibernate...
**JSP+Hibernate实现留言板详解** 在Web开发中,创建一个功能完善的留言板系统是一项常见的任务。这个系统通常涉及用户交互、数据存储以及后端逻辑处理。在这个案例中,我们使用了Java服务器页面(JSP)作为视图层...
【标题】"基于Struts2+Hibernate4实现报道管理系统"是一个使用Java技术栈构建的Web应用,它结合了Struts2框架、Hibernate4 ORM工具以及SQL Server数据库来管理和处理新闻报道相关的数据。这个系统旨在提供一个高效、...
### 基于Hibernate的网络成绩管理系统设计与实现 #### 一、引言 随着教育信息化的快速发展,传统的手工管理成绩的方式已经无法满足现代教育的需求。特别是在实施学分制的背景下,学生可以根据个人兴趣和特长自由...
【基于Hibernate实现的学生选课系统】是一个典型的Java Web应用程序,主要目标是利用Hibernate这一强大的对象关系映射(ORM)框架来简化数据库操作,为初学者提供一个实践平台。Hibernate允许开发者将业务对象与...
**基于Struts 2和Hibernate的Blog实现** 在IT领域,构建一个博客系统是常见的实践项目,用于学习和展示Web开发技术。本项目利用Struts 2和Hibernate这两个流行的Java框架,实现了一个基本的博客系统。Struts 2是MVC...
基于Struts2和Hibernate实现登录和注册功能 Struts2是一款基于MVC模式的Java Web应用程序框架,主要用于开发Web应用程序。Hibernate则是一款基于Java的持久层框架,主要用于将Java对象映射到关系数据库中。通过结合...
通过上述步骤,我们就成功地在Spring Boot应用中集成了Hibernate,并实现了基于HTTP的分页查询功能。用户可以通过URL参数`page`和`size`来指定页面和每页大小,如`/users?page=1&size=5`,服务器将返回第2页,每页...
【标题】"基于Hibernate开发的商城网站"是一个实践项目,主要展示了如何利用Hibernate这一流行的Java持久层框架来构建一个电子商务平台。Hibernate是一个对象关系映射(ORM)工具,它简化了数据库与Java对象之间的...
综上所述,这个项目是一个典型的基于Hibernate和Spring框架的学生管理系统。它不仅涉及到了ORM框架的使用,还包含了一定程度上的系统架构设计,如DAO层、Service层的设计,以及关系数据库的实体映射等。通过这些知识...
这个基于Struts 2+Hibernate+Spring实现的论坛系统,充分利用了这些框架的优势,为用户提供了交互性强、数据管理高效的在线讨论平台。 首先,Struts 2 是一个 MVC(Model-View-Controller)框架,它负责处理用户的...
【描述】"一个基于hibernate+spring+struts的学生选课系统源码"意味着开发者可以获取到完整的源代码,以便学习、研究或在此基础上进行二次开发。这种系统通常包括用户登录、课程浏览、选课操作、成绩管理等多个功能...
本项目"struts+hibernate基于购物车的功能小demo"是一个实用的学习资源,旨在帮助初学者理解并实践这两种技术的结合。 **Struts框架**是MVC(Model-View-Controller)设计模式的一种实现,主要用于控制应用程序的...
【基于Struts+Hibernate的BBS论坛】 在Web开发领域,Struts和Hibernate是两个非常重要的框架,它们分别处理表现层(Presentation Layer)和持久层(Persistence Layer)的问题。Struts是一个MVC(Model-View-...
其中,除了Hibernate的JPA实现,还需要JDBC驱动和其他必要的库,例如log4j日志框架。 接下来,定义一个Java实体类,比如`User`,它代表数据库中的一个表。实体类需要使用`@Entity`注解,并通过`@Table`指定对应的...
### 基于Hibernate的数据持久层关键技术的研究 #### 一、引言 随着软件开发的不断进步和技术的发展,越来越多的企业级应用需要高效地管理和访问大量数据。为了更好地满足这一需求,许多开发团队选择了使用ORM...