Browse Source

Upgrade to Hibernate ORM 7.1

Closes gh-35308
pull/35329/head
Juergen Hoeller 4 months ago
parent
commit
876b7d4209
  1. 6
      framework-docs/modules/ROOT/pages/data-access/orm/hibernate.adoc
  2. 2
      framework-platform/framework-platform.gradle
  3. 6
      spring-orm/src/main/java/org/springframework/orm/jpa/hibernate/LocalSessionFactoryBean.java
  4. 4
      spring-orm/src/main/java/org/springframework/orm/jpa/hibernate/LocalSessionFactoryBuilder.java
  5. 2
      spring-orm/src/main/java/org/springframework/orm/jpa/hibernate/package-info.java
  6. 2
      spring-orm/src/main/java/org/springframework/orm/jpa/vendor/HibernateJpaDialect.java
  7. 2
      spring-orm/src/main/java/org/springframework/orm/jpa/vendor/HibernateJpaVendorAdapter.java

6
framework-docs/modules/ROOT/pages/data-access/orm/hibernate.adoc

@ -10,11 +10,11 @@ cover the other ORM technologies and show brief examples.
[NOTE] [NOTE]
==== ====
As of Spring Framework 7.0, Spring requires Hibernate ORM 7.0 for Spring's As of Spring Framework 7.0, Spring requires Hibernate ORM 7.x for Spring's
`HibernateJpaVendorAdapter` as well as for a native Hibernate `SessionFactory` setup. `HibernateJpaVendorAdapter`.
The `org.springframework.orm.jpa.hibernate` package supersedes the former `orm.hibernate5`: The `org.springframework.orm.jpa.hibernate` package supersedes the former `orm.hibernate5`:
now for use with Hibernate ORM 7.0, tightly integrated with `HibernateJpaVendorAdapter` now for use with Hibernate ORM 7.1+, tightly integrated with `HibernateJpaVendorAdapter`
as well as supporting Hibernate's native `SessionFactory.getCurrentSession()` style. as well as supporting Hibernate's native `SessionFactory.getCurrentSession()` style.
==== ====

2
framework-platform/framework-platform.gradle

@ -124,7 +124,7 @@ dependencies {
api("org.glassfish:jakarta.el:4.0.2") api("org.glassfish:jakarta.el:4.0.2")
api("org.graalvm.sdk:graal-sdk:22.3.1") api("org.graalvm.sdk:graal-sdk:22.3.1")
api("org.hamcrest:hamcrest:3.0") api("org.hamcrest:hamcrest:3.0")
api("org.hibernate.orm:hibernate-core:7.0.5.Final") api("org.hibernate.orm:hibernate-core:7.1.0.Final")
api("org.hibernate.validator:hibernate-validator:9.0.1.Final") api("org.hibernate.validator:hibernate-validator:9.0.1.Final")
api("org.hsqldb:hsqldb:2.7.4") api("org.hsqldb:hsqldb:2.7.4")
api("org.htmlunit:htmlunit:4.13.0") api("org.htmlunit:htmlunit:4.13.0")

6
spring-orm/src/main/java/org/springframework/orm/jpa/hibernate/LocalSessionFactoryBean.java

@ -62,7 +62,7 @@ import org.springframework.core.type.filter.TypeFilter;
* way to set up a shared Hibernate SessionFactory in a Spring application context; the * way to set up a shared Hibernate SessionFactory in a Spring application context; the
* SessionFactory can then be passed to data access objects via dependency injection. * SessionFactory can then be passed to data access objects via dependency injection.
* *
* <p>Compatible with Hibernate ORM 7.0, as of Spring Framework 7.0. * <p>Compatible with Hibernate ORM 7.1, as of Spring Framework 7.0.
* This Hibernate-specific {@code LocalSessionFactoryBean} can be an immediate alternative * This Hibernate-specific {@code LocalSessionFactoryBean} can be an immediate alternative
* to {@link org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean} for * to {@link org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean} for
* common JPA purposes: The Hibernate {@code SessionFactory} will natively expose the JPA * common JPA purposes: The Hibernate {@code SessionFactory} will natively expose the JPA
@ -109,7 +109,7 @@ public class LocalSessionFactoryBean extends HibernateExceptionTranslator
private @Nullable MultiTenantConnectionProvider<?> multiTenantConnectionProvider; private @Nullable MultiTenantConnectionProvider<?> multiTenantConnectionProvider;
private @Nullable CurrentTenantIdentifierResolver<Object> currentTenantIdentifierResolver; private @Nullable CurrentTenantIdentifierResolver<?> currentTenantIdentifierResolver;
private @Nullable Properties hibernateProperties; private @Nullable Properties hibernateProperties;
@ -295,7 +295,7 @@ public class LocalSessionFactoryBean extends HibernateExceptionTranslator
* Set a {@link CurrentTenantIdentifierResolver} to be passed on to the SessionFactory. * Set a {@link CurrentTenantIdentifierResolver} to be passed on to the SessionFactory.
* @see LocalSessionFactoryBuilder#setCurrentTenantIdentifierResolver * @see LocalSessionFactoryBuilder#setCurrentTenantIdentifierResolver
*/ */
public void setCurrentTenantIdentifierResolver(CurrentTenantIdentifierResolver<Object> currentTenantIdentifierResolver) { public void setCurrentTenantIdentifierResolver(CurrentTenantIdentifierResolver<?> currentTenantIdentifierResolver) {
this.currentTenantIdentifierResolver = currentTenantIdentifierResolver; this.currentTenantIdentifierResolver = currentTenantIdentifierResolver;
} }

4
spring-orm/src/main/java/org/springframework/orm/jpa/hibernate/LocalSessionFactoryBuilder.java

@ -80,7 +80,7 @@ import org.springframework.util.ClassUtils;
* Typically combined with {@link HibernateTransactionManager} for declarative * Typically combined with {@link HibernateTransactionManager} for declarative
* transactions against the {@code SessionFactory} and its JDBC {@code DataSource}. * transactions against the {@code SessionFactory} and its JDBC {@code DataSource}.
* *
* <p>Compatible with Hibernate ORM 7.0, as of Spring Framework 7.0. * <p>Compatible with Hibernate ORM 7.1, as of Spring Framework 7.0.
* This Hibernate-specific factory builder can also be a convenient way to set up * This Hibernate-specific factory builder can also be a convenient way to set up
* a JPA {@code EntityManagerFactory} since the Hibernate {@code SessionFactory} * a JPA {@code EntityManagerFactory} since the Hibernate {@code SessionFactory}
* natively exposes the JPA {@code EntityManagerFactory} interface as well now. * natively exposes the JPA {@code EntityManagerFactory} interface as well now.
@ -261,7 +261,7 @@ public class LocalSessionFactoryBuilder extends Configuration {
* @see AvailableSettings#MULTI_TENANT_IDENTIFIER_RESOLVER * @see AvailableSettings#MULTI_TENANT_IDENTIFIER_RESOLVER
*/ */
@Override @Override
public LocalSessionFactoryBuilder setCurrentTenantIdentifierResolver(CurrentTenantIdentifierResolver<Object> currentTenantIdentifierResolver) { public LocalSessionFactoryBuilder setCurrentTenantIdentifierResolver(CurrentTenantIdentifierResolver<?> currentTenantIdentifierResolver) {
getProperties().put(AvailableSettings.MULTI_TENANT_IDENTIFIER_RESOLVER, currentTenantIdentifierResolver); getProperties().put(AvailableSettings.MULTI_TENANT_IDENTIFIER_RESOLVER, currentTenantIdentifierResolver);
super.setCurrentTenantIdentifierResolver(currentTenantIdentifierResolver); super.setCurrentTenantIdentifierResolver(currentTenantIdentifierResolver);
return this; return this;

2
spring-orm/src/main/java/org/springframework/orm/jpa/hibernate/package-info.java

@ -6,7 +6,7 @@
* but potentially also for JPA repositories or mixed use of native Hibernate and JPA. * but potentially also for JPA repositories or mixed use of native Hibernate and JPA.
* *
* <p>As of Spring Framework 7.0, this package supersedes {@code orm.hibernate5} - * <p>As of Spring Framework 7.0, this package supersedes {@code orm.hibernate5} -
* now for use with Hibernate ORM 7.0, tightly integrated with JPA. * now for use with Hibernate ORM 7.1+, tightly integrated with JPA.
*/ */
@NullMarked @NullMarked
package org.springframework.orm.jpa.hibernate; package org.springframework.orm.jpa.hibernate;

2
spring-orm/src/main/java/org/springframework/orm/jpa/vendor/HibernateJpaDialect.java vendored

@ -42,7 +42,7 @@ import org.springframework.transaction.support.ResourceTransactionDefinition;
/** /**
* {@link org.springframework.orm.jpa.JpaDialect} implementation for Hibernate. * {@link org.springframework.orm.jpa.JpaDialect} implementation for Hibernate.
* Compatible with Hibernate ORM 7.0. * Compatible with Hibernate ORM 7.x.
* *
* @author Juergen Hoeller * @author Juergen Hoeller
* @author Costin Leau * @author Costin Leau

2
spring-orm/src/main/java/org/springframework/orm/jpa/vendor/HibernateJpaVendorAdapter.java vendored

@ -41,7 +41,7 @@ import org.jspecify.annotations.Nullable;
/** /**
* {@link org.springframework.orm.jpa.JpaVendorAdapter} implementation for Hibernate. * {@link org.springframework.orm.jpa.JpaVendorAdapter} implementation for Hibernate.
* Compatible with Hibernate ORM 7.0. * Compatible with Hibernate ORM 7.x.
* *
* <p>Exposes Hibernate's persistence provider and Hibernate's Session as extended * <p>Exposes Hibernate's persistence provider and Hibernate's Session as extended
* EntityManager interface, and adapts {@link AbstractJpaVendorAdapter}'s common * EntityManager interface, and adapts {@link AbstractJpaVendorAdapter}'s common

Loading…
Cancel
Save