我试图理解这些概念之间的关系。 jpa锁是否是从java中提供/调用数据库事务隔离级别的方式?或者它是分开的机制,那么它们有什么区别(他们的目的)?理解jpa锁与事务隔离级别
2
A
回答
4
Locking表示您阻止实体同时被多个用户更新。 有两种不同类型的锁定机制。在悲观锁定情况下,在执行更新之前,表中的行必须由用户锁定,并且其他用户无法执行目标实体的更新。该行更新后,该表必须解锁,以便其他用户也可以修改目标记录。另一种选择是使用乐观锁定。在这样的实现中,每个实体都有一个版本列(在JPA @Version中可以使用)。如果实体由用户更新,则其值或时间戳也会更新。如果其他用户使用具有过期值的实体执行更新,则会抛出OptimisticLockException,并且用户或应用程序必须获取新实体并合并更改。 需要此功能来防止实体丢失更新,其中最后一次提交会覆盖所有其他更改。
Transaction Isolation Levels负责数据库读取的一致性。例如,如果使用“READ UNCOMMITTED”,则可以在事务处理完成之前看到数据库正在更新的更改。这意味着,如果发生错误并且事务已回滚,则另一个用户将获取从未存储在数据库中的更改。 “READ COMMITTED”只会提交已提交的更改。
没有“完美”的隔离级别。事务隔离级别的“正确”值取决于应用程序中的用例。例如,用于时间跟踪的JIRA Tempo插件标记未提交红色的记录,以显示数据未决。
相关问题
- 1. SET事务隔离级别
- 2. EJB事务隔离级别
- 3. NOLOCK与事务隔离级别
- 4. 由事务隔离级别分隔的并发进程死锁
- 5. 记录JDBC/Hibernate/JPA事务隔离级别
- 6. Spring事务隔离级别vs数据库隔离级别的优先级
- 7. 事务隔离级别 - Azure SQL数据库中的表锁定
- 8. SELECTs的事务隔离级别
- 9. MySQL事务隔离级别破坏?
- 10. 事务隔离级别数量庞大
- 11. ActiveJob/Resque脏读。事务隔离级别
- 12. 事务中的隔离级别
- 13. 事务隔离级别问题
- 14. 事务,设置隔离级别
- 15. Java JPA,使用实体管理器设置事务隔离级别
- 16. 事务隔离级别很好的解释
- 17. inno db隔离级别和锁定
- 18. 如何设置事务隔离级别与DBUnit
- 19. WITH(NOLOCK)与SET事务隔离级别未提交读
- 20. 与LINQ到NOLOCK NOLOCK没有设置事务隔离级别
- 21. Spring + JUnit4 + JPA/Hibernate - 事务隔离怪异?
- 22. JPA和MySQL的事务隔离
- 23. sql服务器隔离级别和死锁
- 24. SQL:在REPEATABLE READ隔离级别,UPDATE锁是否保存到事务结束?
- 25. java.sql.Connection隔离级别
- 26. mysql隔离级别
- 27. 防止事务一致性(事务类型;事务隔离级别)
- 28. SQL服务器隔离级别
- 29. 集成服务和隔离级别
- 30. Weblogic DB2 DataSource:什么决定事务隔离级别?