diff --git a/hibernate-core/src/main/java/org/hibernate/action/internal/BulkOperationCleanupAction.java b/hibernate-core/src/main/java/org/hibernate/action/internal/BulkOperationCleanupAction.java index a43e8649fcb5..dd4b4f7245f2 100644 --- a/hibernate-core/src/main/java/org/hibernate/action/internal/BulkOperationCleanupAction.java +++ b/hibernate-core/src/main/java/org/hibernate/action/internal/BulkOperationCleanupAction.java @@ -78,7 +78,7 @@ public BulkOperationCleanupAction(SharedSessionContractImplementor session, Enti ); } - final MappingMetamodelImplementor mappingMetamodel = session.getFactory().getRuntimeMetamodels().getMappingMetamodel(); + final MappingMetamodelImplementor mappingMetamodel = session.getFactory().getMappingMetamodel(); final Set roles = mappingMetamodel.getCollectionRolesByEntityParticipant( persister.getEntityName() ); if ( roles != null ) { for ( String role : roles ) { @@ -149,9 +149,9 @@ public static void schedule(SharedSessionContractImplementor session, SqmDmlStat } for ( SqmCteStatement cteStatement : statement.getCteStatements() ) { final SqmQuery cteDefinition = cteStatement.getCteDefinition(); - if ( cteDefinition instanceof SqmDmlStatement ) { + if ( cteDefinition instanceof SqmDmlStatement dmlStatement ) { entityPersisters.add( - metamodel.getEntityDescriptor( ( (SqmDmlStatement) cteDefinition ).getTarget().getEntityName() ) + metamodel.getEntityDescriptor( dmlStatement.getTarget().getEntityName() ) ); } } diff --git a/hibernate-core/src/main/java/org/hibernate/boot/MetadataBuilder.java b/hibernate-core/src/main/java/org/hibernate/boot/MetadataBuilder.java index 74a059e4f5dc..12710b61aa11 100644 --- a/hibernate-core/src/main/java/org/hibernate/boot/MetadataBuilder.java +++ b/hibernate-core/src/main/java/org/hibernate/boot/MetadataBuilder.java @@ -245,7 +245,7 @@ public interface MetadataBuilder { /** * For entities which do not explicitly say, should we force discriminators into - * SQL selects? The (historical) default is {@code false} + * SQL selects? The (historical) default is {@code false}. *

* Its default is defined by the {@value org.hibernate.cfg.AvailableSettings#FORCE_DISCRIMINATOR_IN_SELECTS_BY_DEFAULT} * setting if using property-based configuration. diff --git a/hibernate-core/src/main/java/org/hibernate/cfg/MappingSettings.java b/hibernate-core/src/main/java/org/hibernate/cfg/MappingSettings.java index cc2701d46c83..aa8f1d3bb181 100644 --- a/hibernate-core/src/main/java/org/hibernate/cfg/MappingSettings.java +++ b/hibernate-core/src/main/java/org/hibernate/cfg/MappingSettings.java @@ -507,7 +507,17 @@ public interface MappingSettings { String TRANSFORM_HBM_XML_FEATURE_HANDLING = "hibernate.transform_hbm_xml.unsupported_feature_handling"; /** + * Specifies that Hibernate should always restrict by discriminator values in + * SQL {@code select} statements, even when querying the root entity of an + * entity inheritance hierarchy. + *

+ * By default, Hibernate only restricts by discriminator values when querying + * a subtype, or when the root entity is explicitly annotated + * {@link org.hibernate.annotations.DiscriminatorOptions#force + * DiscriminatorOptions(force=true)}. + * * @see org.hibernate.boot.MetadataBuilder#enableImplicitForcingOfDiscriminatorsInSelect + * @see org.hibernate.annotations.DiscriminatorOptions#force * * @settingDefault {@code false} */ diff --git a/hibernate-core/src/main/java/org/hibernate/mapping/PersistentClass.java b/hibernate-core/src/main/java/org/hibernate/mapping/PersistentClass.java index 91ff4fb99d38..b2048c6581bc 100644 --- a/hibernate-core/src/main/java/org/hibernate/mapping/PersistentClass.java +++ b/hibernate-core/src/main/java/org/hibernate/mapping/PersistentClass.java @@ -251,7 +251,7 @@ public int getSubclassSpan() { */ public List getSubclasses() { @SuppressWarnings("unchecked") - List[] subclassLists = new List[subclasses.size() + 1]; + final List[] subclassLists = new List[subclasses.size() + 1]; int j; for (j = 0; j < subclasses.size(); j++) { subclassLists[j] = subclasses.get(j).getSubclasses();