`
newleague
  • 浏览: 1509390 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

hibernate实例简析-hibernate_optimistic_locking

阅读更多
乐观锁

大多数基于数据版本记录机制(version)实现,一般是在数据库表中加入一个version字段
读取数据时将版本号一同读出,之后更新数据时版本号加一,如果提交数据时版本号小于或等于数据表中
的版本号,则认为数据是过期的,否则给予更新
===
Inventory inv = (Inventory)session.load(Inventory.class, 1);
System.out.println("itemName=" + inv.getItemName());
System.out.println("version=" + inv.getVersion());
System.out.println("quantity=" + inv.getQuantity());
inv.setQuantity(inv.getQuantity() - 200);
session.update(inv);
---
Inventory inv = (Inventory)session.load(Inventory.class, 1);
System.out.println("itemName=" + inv.getItemName());
System.out.println("version=" + inv.getVersion());
System.out.println("quantity=" + inv.getQuantity());
inv.setQuantity(inv.getQuantity() - 200);
session.update(inv);
===
<hibernate-mapping>
<class name="com.bjsxt.hibernate.Inventory" table="t_inventory" optimistic-lock="version">
<id name="itemNo">
<generator class="native"/>
</id>
<version name="version"/>
<property name="itemName"/>
<property name="quantity"/>
</class>
</hibernate-mapping>
===
public class Inventory {

private int itemNo;

private String itemName;

private int quantity;

private int version;
===
Inventory inv = new  Inventory();
inv.setItemNo(1001);
inv.setItemName("脑白金");
inv.setQuantity(1000);

session.save(inv);
分享到:
评论

相关推荐

    探索-重新实现:重新实现我的控制探索工作

    不乐观: python main.py --eval_every 1 --env gridworld --task default --n_state_bins 20 --env_size 20 --n_action_bins 4 --max_steps 100 --policy uniform --no_optimistic_updates --no_opt

    mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz

    另外,通过Optimistic Parallel Insert和更好的索引合并策略,提升了并发插入性能。 6. **安全增强**:MySQL 5.7强化了安全性,例如引入了更严格的默认权限设置,增强了审计日志功能,以及支持加密连接,确保数据...

    Hibernate_3.2.0_Reference_zh_CN.zip

    10. **版本控制(Optimistic Locking / Pessimistic Locking)**:Hibernate提供了乐观锁和悲观锁机制,防止并发访问时的数据冲突。 11. **映射文件(Mapping Files)**:通常使用XML文件(如.hbm.xml)来定义对象-...

    2.14所需资源清单及费用估算表.doc

    _three-point estimating_是指根据项目中每个任务的optimistic、most likely和pessimistic三个估算值,估算总成本。 在IT项目中,成本估算的重要性不言而喻。好的成本估算可以帮助项目经理和项目团队更好地进行资源...

    TortoiseSVN-1.7.8-zh_CN

    - **Subversion的方法:** 采用“乐观锁定”(Optimistic Locking),默认情况下允许并发修改,并在提交时解决潜在冲突。 #### 四、版本库操作 **创建版本库:** - **命令行工具:** 使用`svnadmin create`命令。 ...

    hibernate-mapping参数详解

    - **optimistic-lock**: 乐观锁定策略。 - **lazy**: 控制懒加载行为。 - **entity-name**: 实体名称。 - **check**: 用于检查约束的 SQL 表达式。 - **rowid**: 是否使用数据库支持的 ROWID。 ### 总结 通过上述...

    Cloudera Manager-V5.13 元数据库梳理.pdf

    **备注**: 管理 Cloudera Manager 实例间的对等关系。 ##### 11. CM_VERSION 表 **表名**: CM_VERSION **字段映射**: - **VERSION**: 版本号。 - **GUID**: 版本的全局唯一标识。 - **LAST_UPDATE_INSTANT**: ...

    Hibernate 3.6.0.Final Reference PDF 手册

    - **Optimistic locking properties**:实现乐观锁机制。 - **Property**:映射实体类中的属性。 - **Embedded objects**:嵌入式对象的映射。 - **Inheritance strategy**:继承策略的使用。 - **Mapping one-...

    Hibernate 经典例子全

    `hibernate_lazy_for_single_end`和`hibernate_optimistic_locking`涉及到对象状态管理和并发控制。懒加载是一种优化策略,仅在需要时才加载关联对象。乐观锁则是并发控制的一种方法,它假设在大多数情况下不会发生...

    hibernate夏昕.pdf内容全面通俗易懂

    - **乐观锁(Optimistic Locking)**: 通过版本号等方式避免并发冲突。 - **Hibernate分页**: - 提供分页查询的能力。 - **Cache管理**: - 一级缓存: Hibernate内部自动管理的缓存。 - 二级缓存: 需要额外配置和...

    Hibernate_DEV_GUIDE

    - **乐观锁(Optimistic Locking)**:与悲观锁相反,它假设数据不会被修改,因此在提交事务时才检查是否有并发冲突。 #### 十、Hibernate分页 - **分页查询**:Hibernate提供了对分页的支持,可以通过设置查询参数...

    hibernate源码

    `hibernate_optimistic_locking`文件可能讨论了Hibernate的乐观锁机制。乐观锁在读取数据时不加锁,而在更新时检查数据是否被其他事务修改,如果发现有冲突,则回滚事务。通过版本号或时间戳等方式实现,适合读多写...

    Hibernate 2nd-level cache: JBoss Caching 配置与注意事项

    在Java世界中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它极大地简化了数据库操作。而二级缓存是Hibernate提升性能的关键特性之一。本文将深入探讨如何配置Hibernate使用JBoss Caching作为二级缓存,并...

    Hibernate锁机制_悲观锁和乐观锁

    二、乐观锁(Optimistic Locking) 乐观锁是一种乐观的认为资料的存取很少发生同时存取的问题,不作数据库层次上的锁定,而是通过应用程序上的逻辑实现版本控制的方法来维护正确的数据。 在 Hibernate 中,乐观锁...

    Optimistic Locking with Concurrency in Oracle

    CREATE TABLE optimistic_table ( id INT PRIMARY KEY, data VARCHAR(255), version NUMBER ); ``` 2. 时间戳机制:与版本号类似,时间戳机制是在表中添加一个时间戳字段,记录数据最后修改的时间。在更新数据时...

    hibernate doc 中文版

    - **Optimistic locking properties:** - 乐观锁机制的实现,防止并发修改冲突。 - **Property:** - 映射实体类中的非主键属性。 - **Embedded objects:** - 如何映射嵌套对象或复合属性。 - **Inheritance ...

    hibernate3.6.7中文参考手册

    - **Optimistic locking properties**:实现乐观锁机制,防止并发更新问题。 - **Property**:映射实体类的属性到数据库的列。 - **Embedded objects**:处理嵌入式对象,即实体类内部的复杂属性。 - **Inheritance ...

    hibernate_reference.pdf

    - **Optimistic locking properties (optional)**:可选的乐观锁定属性。 - **Property**:说明如何映射实体的属性。 - **Embedded objects (aka components)**:嵌入式对象的映射。 - **Inheritance strategy**:...

Global site tag (gtag.js) - Google Analytics