This is an automated email from the ASF dual-hosted git repository.

duanzhengqiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 252c0f7170a Use same transaction type in one transaction in jdbc 
adapter (#31063)
252c0f7170a is described below

commit 252c0f7170a261c7b66a955a0f7110460b31631e
Author: ZhangCheng <[email protected]>
AuthorDate: Tue Apr 30 07:48:35 2024 +0800

    Use same transaction type in one transaction in jdbc adapter (#31063)
---
 .../driver/jdbc/core/connection/ShardingSphereConnection.java         | 2 +-
 .../org/apache/shardingsphere/transaction/ConnectionTransaction.java  | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git 
a/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/connection/ShardingSphereConnection.java
 
b/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/connection/ShardingSphereConnection.java
index 1630f3855ac..084d1ac29ff 100644
--- 
a/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/connection/ShardingSphereConnection.java
+++ 
b/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/connection/ShardingSphereConnection.java
@@ -313,7 +313,7 @@ public final class ShardingSphereConnection extends 
AbstractConnectionAdapter {
     
     @Override
     public void close() throws SQLException {
-        if 
(databaseConnectionManager.getConnectionTransaction().isInTransaction()) {
+        if 
(databaseConnectionManager.getConnectionTransaction().isInTransaction(databaseConnectionManager.getConnectionContext().getTransactionContext()))
 {
             databaseConnectionManager.getConnectionTransaction().rollback();
         }
         closed = true;
diff --git 
a/kernel/transaction/core/src/main/java/org/apache/shardingsphere/transaction/ConnectionTransaction.java
 
b/kernel/transaction/core/src/main/java/org/apache/shardingsphere/transaction/ConnectionTransaction.java
index a59bfb045fd..5adf0cc7b07 100644
--- 
a/kernel/transaction/core/src/main/java/org/apache/shardingsphere/transaction/ConnectionTransaction.java
+++ 
b/kernel/transaction/core/src/main/java/org/apache/shardingsphere/transaction/ConnectionTransaction.java
@@ -40,9 +40,9 @@ public final class ConnectionTransaction {
     private final TransactionConnectionContext transactionContext;
     
     public ConnectionTransaction(final TransactionRule rule, final 
TransactionConnectionContext transactionContext) {
-        this.transactionType = rule.getDefaultType();
+        this.transactionType = 
transactionContext.getTransactionType().isPresent() ? 
TransactionType.valueOf(transactionContext.getTransactionType().get()) : 
rule.getDefaultType();
         this.transactionContext = transactionContext;
-        transactionManager = 
rule.getResource().getTransactionManager(transactionType);
+        transactionManager = TransactionType.LOCAL == this.transactionType ? 
null : rule.getResource().getTransactionManager(rule.getDefaultType());
     }
     
     /**

Reply via email to