diff --git a/hibernate-core/src/main/java/org/hibernate/Interceptor.java b/hibernate-core/src/main/java/org/hibernate/Interceptor.java index a3a033bfc1..2c4d1ba77a 100644 --- a/hibernate-core/src/main/java/org/hibernate/Interceptor.java +++ b/hibernate-core/src/main/java/org/hibernate/Interceptor.java @@ -309,7 +309,6 @@ public interface Interceptor { * @throws CallbackException Thrown if the interceptor encounters any problems handling the callback. * * @see Session#remove(Object) - * @see Session#delete(Object) * * @deprecated Use {@link #onRemove(Object, Object, Object[], String[], Type[])} */ diff --git a/hibernate-core/src/main/java/org/hibernate/annotations/DynamicUpdate.java b/hibernate-core/src/main/java/org/hibernate/annotations/DynamicUpdate.java index 56e8ec5b83..b8a2b89c77 100644 --- a/hibernate-core/src/main/java/org/hibernate/annotations/DynamicUpdate.java +++ b/hibernate-core/src/main/java/org/hibernate/annotations/DynamicUpdate.java @@ -23,8 +23,6 @@ import static java.lang.annotation.RetentionPolicy.RUNTIME; *

* * @author Steve Ebersole - * - * @see SelectBeforeUpdate */ @Target( TYPE ) @Retention( RUNTIME ) diff --git a/hibernate-core/src/main/java/org/hibernate/boot/SessionFactoryBuilder.java b/hibernate-core/src/main/java/org/hibernate/boot/SessionFactoryBuilder.java index 43062de794..8cc7411d0a 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/SessionFactoryBuilder.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/SessionFactoryBuilder.java @@ -720,10 +720,11 @@ public interface SessionFactoryBuilder { SessionFactoryBuilder enableJpaListCompliance(boolean enabled); /** - * @see JpaCompliance#isJpaCascadeComplianceEnabled() + * @deprecated No longer has any effect. * - * @see org.hibernate.cfg.AvailableSettings#JPA_CASCADE_COMPLIANCE + * @see JpaCompliance#isJpaCascadeComplianceEnabled() */ + @Deprecated(since = "7.0", forRemoval = true) SessionFactoryBuilder enableJpaCascadeCompliance(boolean enabled); /** diff --git a/hibernate-core/src/main/java/org/hibernate/cfg/JpaComplianceSettings.java b/hibernate-core/src/main/java/org/hibernate/cfg/JpaComplianceSettings.java index fe5231ad5e..410d88f2d1 100644 --- a/hibernate-core/src/main/java/org/hibernate/cfg/JpaComplianceSettings.java +++ b/hibernate-core/src/main/java/org/hibernate/cfg/JpaComplianceSettings.java @@ -63,17 +63,10 @@ public interface JpaComplianceSettings { String JPA_QUERY_COMPLIANCE = "hibernate.jpa.compliance.query"; /** - * Controls whether Hibernate applies cascade - * {@link jakarta.persistence.CascadeType#PERSIST} or - * {@link org.hibernate.annotations.CascadeType#SAVE_UPDATE} - * at flush time. If enabled, Hibernate will cascade the standard - * JPA {@code PERSIST} operation. Otherwise, Hibernate will cascade - * the legacy {@code SAVE_UPDATE} operation. - * - * @settingDefault {@link #JPA_COMPLIANCE} - * - * @since 6.6 + * @deprecated No longer has any effect. Since 7.0 (and removal of save/update processing), + * Hibernate always cascades {@linkplain jakarta.persistence.CascadeType#PERSIST PERSIST} */ + @Deprecated String JPA_CASCADE_COMPLIANCE = "hibernate.jpa.compliance.cascade"; /** diff --git a/hibernate-core/src/main/java/org/hibernate/engine/spi/CascadingActions.java b/hibernate-core/src/main/java/org/hibernate/engine/spi/CascadingActions.java index 1f8f0e76a7..76a2ab8623 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/spi/CascadingActions.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/spi/CascadingActions.java @@ -80,11 +80,11 @@ public class CascadingActions { }; /** - * @see org.hibernate.Session#delete(Object) + * Used in legacy {@code Session#delete} method, which has been removed * * @deprecated Use {@link #REMOVE} */ - @Deprecated(since = "6.6") + @Deprecated(since = "6.6", forRemoval = true) public static final CascadingAction DELETE = REMOVE; /** diff --git a/hibernate-core/src/main/java/org/hibernate/event/internal/AbstractFlushingEventListener.java b/hibernate-core/src/main/java/org/hibernate/event/internal/AbstractFlushingEventListener.java index e042e6c5ec..99abc17c6f 100644 --- a/hibernate-core/src/main/java/org/hibernate/event/internal/AbstractFlushingEventListener.java +++ b/hibernate-core/src/main/java/org/hibernate/event/internal/AbstractFlushingEventListener.java @@ -53,11 +53,8 @@ public abstract class AbstractFlushingEventListener implements JpaBootstrapSensi private static final CoreMessageLogger LOG = Logger.getMessageLogger( CoreMessageLogger.class, AbstractFlushingEventListener.class.getName() ); - private boolean jpaBootstrap; - @Override public void wasJpaBootstrap(boolean wasJpaBootstrap) { - this.jpaBootstrap = wasJpaBootstrap; } // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -205,10 +202,6 @@ public abstract class AbstractFlushingEventListener implements JpaBootstrapSensi return CascadingActions.PERSIST_ON_FLUSH; } - private static boolean isJpaCascadeComplianceEnabled(EventSource session) { - return session.getSessionFactory().getSessionFactoryOptions().getJpaCompliance().isJpaCascadeComplianceEnabled(); - } - /** * Initialize the flags of the CollectionEntry, including the * dirty check. @@ -284,14 +277,13 @@ public abstract class AbstractFlushingEventListener implements JpaBootstrapSensi EventSource source, Object key, EntityEntry entry) { - final FlushEntityEvent entityEvent = possiblyValidExistingInstance; - if ( entityEvent == null || !entityEvent.isAllowedToReuse() ) { + if ( possiblyValidExistingInstance == null || !possiblyValidExistingInstance.isAllowedToReuse() ) { //need to create a new instance return new FlushEntityEvent( source, key, entry ); } else { - entityEvent.resetAndReuseEventInstance( key, entry ); - return entityEvent; + possiblyValidExistingInstance.resetAndReuseEventInstance( key, entry ); + return possiblyValidExistingInstance; } } diff --git a/hibernate-core/src/main/java/org/hibernate/event/spi/DeleteContext.java b/hibernate-core/src/main/java/org/hibernate/event/spi/DeleteContext.java index 792acb1c7d..1c1548eacc 100644 --- a/hibernate-core/src/main/java/org/hibernate/event/spi/DeleteContext.java +++ b/hibernate-core/src/main/java/org/hibernate/event/spi/DeleteContext.java @@ -8,11 +8,15 @@ package org.hibernate.event.spi; import java.util.IdentityHashMap; +import org.hibernate.event.internal.DefaultDeleteEventListener; + /** - * A {@link DeleteEvent} represents a {@linkplain org.hibernate.Session#delete(Object) delete operation} + * A {@link DeleteEvent} represents a {@linkplain org.hibernate.Session#remove delete operation} * applied to a single entity. A {@code DeleteContext} is propagated across all cascaded delete operations, * and keeps track of all the entities we've already visited. * + * @see DefaultDeleteEventListener#onDelete(DeleteEvent, DeleteContext) + * * @author Gavin King */ public interface DeleteContext { diff --git a/hibernate-core/src/main/java/org/hibernate/jpa/internal/MutableJpaComplianceImpl.java b/hibernate-core/src/main/java/org/hibernate/jpa/internal/MutableJpaComplianceImpl.java index d677db60f4..0180d80609 100644 --- a/hibernate-core/src/main/java/org/hibernate/jpa/internal/MutableJpaComplianceImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/jpa/internal/MutableJpaComplianceImpl.java @@ -26,7 +26,6 @@ public class MutableJpaComplianceImpl implements MutableJpaCompliance { private boolean closedCompliance; private boolean cachingCompliance; private boolean loadByIdCompliance; - private boolean cascadeCompliance; public MutableJpaComplianceImpl(Map configurationSettings) { this( @@ -39,11 +38,6 @@ public class MutableJpaComplianceImpl implements MutableJpaCompliance { public MutableJpaComplianceImpl(Map configurationSettings, boolean jpaByDefault) { final Object legacyQueryCompliance = configurationSettings.get( AvailableSettings.JPAQL_STRICT_COMPLIANCE ); - cascadeCompliance = ConfigurationHelper.getBoolean( - AvailableSettings.JPA_CASCADE_COMPLIANCE, - configurationSettings, - jpaByDefault - ); //noinspection deprecation listCompliance = ConfigurationHelper.getBoolean( AvailableSettings.JPA_LIST_COMPLIANCE, @@ -103,7 +97,7 @@ public class MutableJpaComplianceImpl implements MutableJpaCompliance { } public boolean isJpaCascadeComplianceEnabled() { - return cascadeCompliance; + return true; } @Override @@ -151,7 +145,6 @@ public class MutableJpaComplianceImpl implements MutableJpaCompliance { @Override public void setCascadeCompliance(boolean cascadeCompliance) { - this.cascadeCompliance = cascadeCompliance; } @Override @@ -197,7 +190,6 @@ public class MutableJpaComplianceImpl implements MutableJpaCompliance { public JpaCompliance immutableCopy() { JpaComplianceImpl.JpaComplianceBuilder builder = new JpaComplianceImpl.JpaComplianceBuilder(); builder = builder.setListCompliance( listCompliance ) - .setCascadeCompliance( cascadeCompliance ) .setProxyCompliance( proxyCompliance ) .setOrderByMappingCompliance( orderByMappingCompliance ) .setGlobalGeneratorNameCompliance( generatorNameScopeCompliance ) diff --git a/hibernate-core/src/main/java/org/hibernate/jpa/spi/JpaCompliance.java b/hibernate-core/src/main/java/org/hibernate/jpa/spi/JpaCompliance.java index fc657119e3..dc47ff00a9 100644 --- a/hibernate-core/src/main/java/org/hibernate/jpa/spi/JpaCompliance.java +++ b/hibernate-core/src/main/java/org/hibernate/jpa/spi/JpaCompliance.java @@ -81,14 +81,9 @@ public interface JpaCompliance { boolean isJpaClosedComplianceEnabled(); /** - * JPA specifies that a {@link jakarta.persistence.CascadeType#PERSIST} - * operation should occur at flush time. The legacy behavior of Hibernate - * was a {@link org.hibernate.annotations.CascadeType#SAVE_UPDATE}. - * - * @return {@code true} indicates to behave in the spec-defined way - * - * @see org.hibernate.cfg.AvailableSettings#JPA_CASCADE_COMPLIANCE + * @deprecated No longer has any effect. */ + @Deprecated(since = "7.0") boolean isJpaCascadeComplianceEnabled(); /** diff --git a/hibernate-core/src/main/java/org/hibernate/jpa/spi/MutableJpaCompliance.java b/hibernate-core/src/main/java/org/hibernate/jpa/spi/MutableJpaCompliance.java index 3e69eb621e..57d9e5f47c 100644 --- a/hibernate-core/src/main/java/org/hibernate/jpa/spi/MutableJpaCompliance.java +++ b/hibernate-core/src/main/java/org/hibernate/jpa/spi/MutableJpaCompliance.java @@ -10,6 +10,10 @@ package org.hibernate.jpa.spi; * @author Steve Ebersole */ public interface MutableJpaCompliance extends JpaCompliance { + /** + * @deprecated Always enabled. See {@linkplain JpaCompliance#isJpaCascadeComplianceEnabled()} + */ + @Deprecated void setCascadeCompliance(boolean cascadeCompliance); void setListCompliance(boolean listCompliance); diff --git a/hibernate-core/src/main/java/org/hibernate/transform/package-info.java b/hibernate-core/src/main/java/org/hibernate/transform/package-info.java index 2f2caa7010..d062abc5cb 100644 --- a/hibernate-core/src/main/java/org/hibernate/transform/package-info.java +++ b/hibernate-core/src/main/java/org/hibernate/transform/package-info.java @@ -12,8 +12,6 @@ * Deprecated, use {@link org.hibernate.query.TupleTransformer} * and/or {@link org.hibernate.query.ResultListTransformer} * which are defined in {@link org.hibernate.query}. - * - * @deprecated The contents of this package are deprecated */ @Deprecated package org.hibernate.transform; diff --git a/hibernate-core/src/main/java/org/hibernate/tuple/package-info.java b/hibernate-core/src/main/java/org/hibernate/tuple/package-info.java index e38df06bbb..a596d84d9f 100644 --- a/hibernate-core/src/main/java/org/hibernate/tuple/package-info.java +++ b/hibernate-core/src/main/java/org/hibernate/tuple/package-info.java @@ -11,9 +11,6 @@ *

* Value-generation related contracts have been replaced by * {@link org.hibernate.generator} - * - * @deprecated The contents of this package and its subpackages - * are deprecated */ @Remove @Deprecated package org.hibernate.tuple; diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/cascade/persist/CascadePersistSFTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/cascade/persist/CascadePersistSFTest.java index 13ed862b74..db485f3a6f 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/cascade/persist/CascadePersistSFTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/cascade/persist/CascadePersistSFTest.java @@ -24,7 +24,6 @@ import static org.junit.jupiter.api.Assertions.assertEquals; @DomainModel(annotatedClasses = {CascadePersistSFTest.Parent.class, CascadePersistSFTest.Child.class}) -@ServiceRegistry(settings = @Setting(name=JpaComplianceSettings.JPA_CASCADE_COMPLIANCE,value="true")) public class CascadePersistSFTest { @Test void test(SessionFactoryScope scope) { Parent p = new Parent();