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());
}
/**