From 6d04ea9e84e95882b7350081aa1043cbeac06938 Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Fri, 31 Jul 2026 16:24:09 +0200 Subject: [PATCH] Check existing database transaction against UnitOfWork See gh-37085 --- .../orm/jpa/vendor/EclipseLinkJpaDialect.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/EclipseLinkJpaDialect.java b/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/EclipseLinkJpaDialect.java index 7f984356c4d..4d8fcf2c1c9 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/EclipseLinkJpaDialect.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/EclipseLinkJpaDialect.java @@ -24,7 +24,6 @@ import java.util.concurrent.locks.ReentrantLock; import jakarta.persistence.EntityManager; import jakarta.persistence.PersistenceException; import org.eclipse.persistence.sessions.DatabaseLogin; -import org.eclipse.persistence.sessions.DatabaseSession; import org.eclipse.persistence.sessions.UnitOfWork; import org.jspecify.annotations.Nullable; @@ -176,8 +175,8 @@ public class EclipseLinkJpaDialect extends DefaultJpaDialect { public Connection getConnection() { Connection con = this.connection; if (con == null) { - DatabaseSession dbs = this.entityManager.unwrap(DatabaseSession.class); - if (dbs.isInTransaction()) { + UnitOfWork uow = this.entityManager.unwrap(UnitOfWork.class); + if (uow.getParent().isInTransaction()) { // Existing Connection to be retrieved from this EntityManager. con = this.entityManager.unwrap(Connection.class); }