【问题标题】:Precedence of Spring Transaction Isolation level vs Database isolation levelSpring事务隔离级别与数据库隔离级别的优先级
【发布时间】:2017-08-11 05:15:45
【问题描述】:

说,数据库的隔离级别设置为READ_COMMITED
然后通过spring事务管理我将事务隔离级别设置为
1) READ_UNCOMMITED - 那么这个事务的有效隔离级别是多少。
2) REPEATABLE_READ - 那么这个事务的有效隔离级别是多少。

【问题讨论】:

  • 一个好问题 - 你为什么不测试它?虽然,我的猜测是 spring 改变了会话级别的数据库隔离模式。您可以通过在 spring 中更改隔离模式来测试它,然后通过 spring 中的 sql 查询会话级别的数据库设置。

标签: mysql spring spring-transactions isolation-level transaction-isolation


【解决方案1】:

在 DB 中设置了默认隔离级别(在您的情况下为 READ_COMMITED)和一个事务隔离级别。如果没有明确指定,则使用默认级别。

Spring 只是打开声明的隔离级别,当然会“覆盖”默认的 DB 级别。

事实上,你可以通过调用 SQL 来做同样的事情,而无需 spring

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;

春天对你也一样

【讨论】:

  • 酷。因此 spring 的事务隔离设置优先于该特定事务。 Gr8.
猜你喜欢
  • 2015-08-02
  • 2015-07-21
  • 2015-01-06
  • 2020-06-07
  • 2011-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多