30、并发数据访问控制与非事务性数据访问

并发数据访问控制与非事务性数据访问

1. 并发访问控制

1.1 乐观并发控制示例

在拍卖系统中,当用户进行投标操作时,需要对并发访问进行控制,以确保数据的一致性。以下是一个示例代码:

try {
    Bid newBid = new Bid(
        new BigDecimal("44.44"),
        item,
        highestBid
    );
    em.persist(newBid); 
} catch (InvalidBidException ex) {
}
tx.commit();
em.close();

在这个代码中,我们尝试创建一个新的投标对象 newBid ,并将其持久化到数据库中。如果投标金额无效,会捕获 InvalidBidException 异常。最后提交事务并关闭实体管理器。

1.2 乐观并发控制的特点

  • find() 方法的 OPTIMISTIC_FORCE_INCREMENT 模式 :该模式会在加载 Item 实例后,即使在工作单元中未对其进行修改,也会增加其版本号。
  • 投标操作 :持久化新的 Bid 实例不会影响 Item 实例的值,而是在 BID <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值