Runtime compatibility with JPA 4.0 M4

Closes gh-36784
This commit is contained in:
Juergen Hoeller
2026-05-29 13:28:46 +02:00
parent 0b77c3df45
commit 175c1f9437
13 changed files with 75 additions and 54 deletions
@@ -19,11 +19,6 @@ package org.springframework.orm.jpa;
import jakarta.persistence.EntityManagerFactory;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.query.CommonQueryContract;
import org.hibernate.query.SelectionQuery;
import org.hibernate.query.hql.spi.SqmQueryImplementor;
import org.hibernate.query.spi.DomainQueryExecutionContext;
import org.hibernate.query.sqm.spi.InterpretationsKeySource;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -47,8 +42,7 @@ class EntityManagerRuntimeHintsTests {
@BeforeEach
void setup() {
AotServices.factories().load(RuntimeHintsRegistrar.class)
.forEach(registrar -> registrar.registerHints(this.hints,
ClassUtils.getDefaultClassLoader()));
.forEach(registrar -> registrar.registerHints(this.hints, ClassUtils.getDefaultClassLoader()));
}
@Test
@@ -69,13 +63,4 @@ class EntityManagerRuntimeHintsTests {
assertThat(RuntimeHintsPredicates.reflection().onMethodInvocation(EntityManagerFactory.class, "getMetamodel")).accepts(this.hints);
}
@Test
void sqmQueryHints() {
assertThat(RuntimeHintsPredicates.proxies().forInterfaces(
SqmQueryImplementor.class,
InterpretationsKeySource.class,
DomainQueryExecutionContext.class,
SelectionQuery.class,
CommonQueryContract.class)).accepts(this.hints);
}
}
@@ -76,19 +76,20 @@ class OpenEntityManagerInViewTests {
@BeforeEach
void setUp() {
void setup() {
given(factory.createEntityManager()).willReturn(manager);
this.request.setAsyncSupported(true);
}
@AfterEach
void tearDown() {
void cleanup() {
assertThat(TransactionSynchronizationManager.getResourceMap()).isEmpty();
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
assertThat(TransactionSynchronizationManager.isCurrentTransactionReadOnly()).isFalse();
assertThat(TransactionSynchronizationManager.isActualTransactionActive()).isFalse();
}
@Test
void openEntityManagerInViewInterceptor() {
OpenEntityManagerInViewInterceptor interceptor = new OpenEntityManagerInViewInterceptor();
@@ -74,7 +74,7 @@ class PersistenceContextTransactionTests {
}
@AfterEach
void clear() {
void cleanup() {
assertThat(TransactionSynchronizationManager.getResourceMap()).isEmpty();
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
assertThat(TransactionSynchronizationManager.isCurrentTransactionReadOnly()).isFalse();