首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Spring事务中更改隔离级别

在Spring事务中更改隔离级别
EN

Stack Overflow用户
提问于 2013-12-20 07:13:37
回答 1查看 1.2K关注 0票数 0

我在Spring事务中执行了一段很长的代码。我现在只想让该代码的一小部分以不同的隔离级别执行。如果我调用:

代码语言:javascript
复制
transactionTemplate.setIsolationLevel(Isolation.SERIALIZABLE.value());

在这个小的子集之前,这会达到我的目标吗?或者我必须设置隔离级别,然后创建一个新的事务?

EN

回答 1

Stack Overflow用户

发布于 2013-12-20 09:28:53

我知道在SQL*Plus中,设置隔离级别意味着启动一个事务:

代码语言:javascript
复制
-bash-4.1$ sqlplus mbobak/mbobak

SQL*Plus: Release 11.2.0.3.0 Production on Thu Dec 19 20:26:18 2013

Copyright (c) 1982, 2011, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options

SQL> select taddr from v$session where sid in(select sid from v$mystat where rownum=1);

TADDR
----------------


SQL> set transaction isolation level serializable;

Transaction set.

SQL> select taddr from v$session where sid in(select sid from v$mystat where rownum=1);

TADDR
----------------
0000007F510EFD60

SQL> 

我假设这同样适用于您的Spring API。

只是想了点别的。另外,请注意,事实上,“set transaction”必须是事务中的第一条语句。一旦事务开始,就不能更改它的隔离级别。任何这样做的尝试都将导致:

代码语言:javascript
复制
ORA-01453: SET TRANSACTION must be first statement of transaction
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20693535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档