当前位置: 首页 > 知识库问答 >
问题:

JPA锁和数据库隔离级别

宇文德明
2023-03-14

JPA锁(乐观/悲观)和数据库隔离级别(以http://www . PostgreSQL . org/docs/9.1/static/transaction-iso . html为例)之间有没有相互影响?

EJB3.2规范(8.3.2“隔离级别”)说Bean提供者负责设置事务的隔离级别,所以一般情况下我应该不会在意,但无论如何我还是很困惑。在PostgreSQL的示例中,根据提到的来源,默认隔离级别是“read commited”。这是否意味着当我不锁定任何实体时,事务隔离级别仍然是“read commited”?

共有1个答案

有宏峻
2023-03-14

通过在实体上使用< code>@Version列,并且不使用锁定(相当于使用< code>LockModeType。NONE)您隐式地使用READ _ COMMITED隔离。这是在JPA层实现的,因为所有更新通常都被推迟到提交时间,或者在发生更新冲突的情况下抛出< code > OptimisticLockException (我仍然假设没有显式锁定)。

它假定…对数据库的写入通常只会在调用了flush方法时发生——无论是由应用程序显式调用,还是由持久性提供程序运行时根据flush模式设置调用

在数据库层,JPA规范还假设您已经进行了READ _ COMMITED隔离。

它假设持久性单元映射到的数据库将由实现使用读提交隔离(或不保持长期读锁的供应商等效隔离)进行访问

当然,手动刷新/刷新、查询和刷新类型模式(AUTOCOMMIT)使情况变得复杂。第二级和查询缓存配置也可能发挥作用。然而,对于所有默认值,JPAREAD_COMMITED的行为相当可预测,根据经验,在db级别伴随READ_COMMITED隔离是安全的。

为了用JPA实现REPETABLE _ READ,你必须使用锁(但那是另一个故事了)。

锁定模式旨在提供一种工具来实现“可重复读取”语义的效果

 类似资料:
  • 主要内容:事务概述,事务的四大特性,并发事务问题,事务的隔离级别,演示:,总结事务概述 事务是一个或一组sql语句组成的一个执行单元,这个执行单元要么全部执行成功,要么全部执行失败。用于保证数据的完整性。 如账户转账,张三给李四转500,对应的sql语句应该是update张三的 余额-500,并且update李四的余额+500,如果先更新完张三的数据,然后出现了异常,导致李四的余额修改不了,那么就出现数据上的问题了,应该使用事务来解决这一问题,当中间出现异常后回滚,让张三的

  • 研究隔离级别和阻塞,更具体的读提交与读提交快照。 在SQL Server 2014中,默认隔离级别是提交读取,如果我运行 然后在新的连接中 第二个查询将阻塞并挂起。 然而,在Azure SQL中,隔离级别是READ COMMITTED SNAPSHOT,它似乎允许从Person读取。持TABLOCKX的人在等待。 问:如何重现阻塞场景,可能有提示,强制第一个SELECT完全阻塞表,同时打开READ

  • 本文向大家介绍请你介绍一下数据库的隔离级别 相关面试题,主要包含被问及请你介绍一下数据库的隔离级别 时的应答技巧和注意事项,需要的朋友参考一下 考察点:事务的隔离级别   隔离级别 脏读(Dirty Read) 不可重复读(NonRepeatable Read) 幻读(Phantom Read) 未提交读(Read uncommitted) 可能 可能 可能 已提交读(Read committed

  • 问题内容: 考虑一下我正在使用的一些代码的简化视图: 我已经在类级别设置了注释。我理解这意味着必须在提供的事务中调用诸如之类的所有方法。在这种情况下,我们正在使用容器管理的事务。 在根本不被用于或…既没有类,也没有方法的水平。我明白这意味着并会为双方提供的事务中进行操作。 但是,我严重错过了 某些东西 !如代码注释所示,… 将数据写入数据库,然后读取该数据作为其操作的一部分。由于所有这些都在同一个

  • 我正在编写一个Web应用程序,其中两个不同的用户可以更新一个事物列表,例如待办事项列表。我开始意识到,乐观锁定机制效果最好,因为我不期望高争用。 我正在查看事务隔离级别,现在我有点困惑。看起来不同的事务隔离级别也解决了类似的问题。 这两个不同的概念是如何相互关联的?如果可能,举一个简单的例子。

  • 本文向大家介绍mysql的事务,隔离级别和锁用法实例分析,包括了mysql的事务,隔离级别和锁用法实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了mysql的事务,隔离级别和锁用法。分享给大家供大家参考,具体如下: 事务就是一组一起成功或一起失败的sql语句。事务还应该具备,原子性,一致性,隔离性和持久性。 一、事务的基本要素 (ACID) 1、原子性:事务开始后,所有的操作,要么