Browse Source

Restore Hibernate ORM 5.1 compatibility in HibernateTransactionManager

Issue: SPR-17557
pull/2036/head
Juergen Hoeller 6 years ago
parent
commit
0841dc5f99
  1. 5
      spring-orm/src/main/java/org/springframework/orm/hibernate5/HibernateTransactionManager.java

5
spring-orm/src/main/java/org/springframework/orm/hibernate5/HibernateTransactionManager.java

@ -541,7 +541,10 @@ public class HibernateTransactionManager extends AbstractPlatformTransactionMana @@ -541,7 +541,10 @@ public class HibernateTransactionManager extends AbstractPlatformTransactionMana
// Register the Hibernate Session's JDBC Connection for the DataSource, if set.
if (getDataSource() != null) {
SessionImplementor sessionImpl = (SessionImplementor) session;
ConnectionHolder conHolder = new ConnectionHolder(sessionImpl::connection);
// The following needs to use a lambda expression instead of a method reference
// for compatibility with Hibernate ORM <5.2 where connection() is defined on
// SessionImplementor itself instead of on SharedSessionContractImplementor...
ConnectionHolder conHolder = new ConnectionHolder(() -> sessionImpl.connection());
if (timeout != TransactionDefinition.TIMEOUT_DEFAULT) {
conHolder.setTimeoutInSeconds(timeout);
}

Loading…
Cancel
Save