gpt4 book ai didi

java - 更改 Spring 事务中的隔离级别

转载 作者:行者123 更新时间:2023-12-02 06:24:26 27 4
gpt4 key购买 nike

我有很长一段代码正在 Spring 事务中执行。我现在只想使用不同的隔离级别执行该代码的一小部分。如果我打电话:

transactionTemplate.setIsolationLevel(Isolation.SERIALIZABLE.value());

就在这个小子集之前,这会实现我的目标吗?还是我必须设置隔离级别,然后创建一个新事务?

最佳答案

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

-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”必须是事务中的第一个语句。一旦事务开始,您就无法更改其隔离级别。任何这样做的尝试都将导致:

ORA-01453: SET TRANSACTION must be first statement of transaction

关于java - 更改 Spring 事务中的隔离级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20693535/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com