This is an automated email from the ASF dual-hosted git repository. borinquenkid pushed a commit to branch 8.0.x-hibernate7-dev in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit e639f023f123447ec399b21b49c2b00a11a01ff2 Author: Walter Duque de Estrada <[email protected]> AuthorDate: Wed Mar 4 19:09:59 2026 -0600 cleanup(hibernate7): Make SimpleValueBinder.bindSimpleValue return SimpleValue --- .../cfg/domainbinding/binder/CollectionBinder.java | 3 +-- .../cfg/domainbinding/binder/ComponentUpdater.java | 2 -- .../binder/CompositeIdentifierToManyToOneBinder.java | 2 +- .../cfg/domainbinding/binder/GrailsDomainBinder.java | 4 +--- .../domainbinding/binder/GrailsPropertyBinder.java | 2 +- .../cfg/domainbinding/binder/IdentityBinder.java | 3 +-- .../domainbinding/binder/JoinedSubClassBinder.java | 7 +++---- .../domainbinding/binder/ManyToOneValuesBinder.java | 2 +- .../cfg/domainbinding/binder/RootBinder.java | 2 +- .../RootPersistentClassCommonValuesBinder.java | 7 +++---- .../cfg/domainbinding/binder/SimpleValueBinder.java | 18 +++++------------- .../binder/SingleTableSubclassBinder.java | 8 +++----- .../cfg/domainbinding/binder/SubClassBinder.java | 1 - .../domainbinding/binder/SubclassMappingBinder.java | 2 +- .../cfg/domainbinding/binder/VersionBinder.java | 12 ------------ .../hibernate/HibernatePersistentEntity.java | 20 +++++++------------- .../cfg/domainbinding/IdentityBinderSpec.groovy | 12 ++++++------ .../cfg/domainbinding/binder/RootBinderSpec.groovy | 4 ++-- .../RootPersistentClassCommonValuesBinderSpec.groovy | 4 ++-- .../binder/SingleTableSubclassBinderSpec.groovy | 2 +- .../binder/SubclassMappingBinderSpec.groovy | 7 ++----- 21 files changed, 42 insertions(+), 82 deletions(-) diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/CollectionBinder.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/CollectionBinder.java index 114e01ec05..a0cc85e653 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/CollectionBinder.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/CollectionBinder.java @@ -59,8 +59,7 @@ import org.hibernate.mapping.Collection; import org.hibernate.mapping.OneToMany; import org.hibernate.mapping.PersistentClass; import org.hibernate.mapping.Table; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; + /** Handles the binding of collections to the Hibernate runtime meta model. */ @SuppressWarnings("PMD.DataflowAnomalyAnalysis") diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/ComponentUpdater.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/ComponentUpdater.java index 996f8640a3..f480774f14 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/ComponentUpdater.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/ComponentUpdater.java @@ -18,8 +18,6 @@ */ package org.grails.orm.hibernate.cfg.domainbinding.binder; -import java.util.Iterator; -import org.grails.orm.hibernate.cfg.domainbinding.hibernate.GrailsHibernatePersistentEntity; import org.grails.orm.hibernate.cfg.domainbinding.hibernate.HibernatePersistentProperty; import org.grails.orm.hibernate.cfg.domainbinding.util.PropertyFromValueCreator; import org.hibernate.mapping.Column; diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/CompositeIdentifierToManyToOneBinder.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/CompositeIdentifierToManyToOneBinder.java index 785403f21d..0d115077b3 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/CompositeIdentifierToManyToOneBinder.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/CompositeIdentifierToManyToOneBinder.java @@ -138,6 +138,6 @@ public class CompositeIdentifierToManyToOneBinder { } private String join(String... parts) { - return Arrays.stream(parts).map(backticksRemover::apply).collect(Collectors.joining(String.valueOf(UNDERSCORE))); + return Arrays.stream(parts).map(backticksRemover).collect(Collectors.joining(String.valueOf(UNDERSCORE))); } } diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/GrailsDomainBinder.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/GrailsDomainBinder.java index 2e00e23af4..3fb45b072f 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/GrailsDomainBinder.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/GrailsDomainBinder.java @@ -58,7 +58,6 @@ import org.slf4j.LoggerFactory; public class GrailsDomainBinder implements AdditionalMappingContributor, TypeContributor { public static final String FOREIGN_KEY_SUFFIX = "_id"; - private static final String STRING_TYPE = "string"; public static final String EMPTY_PATH = ""; public static final char UNDERSCORE = '_'; @@ -245,8 +244,7 @@ public class GrailsDomainBinder implements AdditionalMappingContributor, TypeCon hibernateMappingContext.getHibernatePersistentEntities(dataSourceName).stream() .filter(persistentEntity -> persistentEntity.forGrailsDomainMapping(dataSourceName)) .forEach( - hibernatePersistentEntity -> - rootBinder.bindRoot(hibernatePersistentEntity)); + rootBinder::bindRoot); } /** diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/GrailsPropertyBinder.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/GrailsPropertyBinder.java index 19f1ea72af..e9d32d668b 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/GrailsPropertyBinder.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/GrailsPropertyBinder.java @@ -76,7 +76,7 @@ public class GrailsPropertyBinder { + "]"); } - Value value = null; + Value value; // 1. Create Value and apply binders (consolidated block) if (currentGrailsProp instanceof HibernateEnumProperty) { diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/IdentityBinder.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/IdentityBinder.java index fd06e02768..90e987e1db 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/IdentityBinder.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/IdentityBinder.java @@ -24,7 +24,7 @@ import org.grails.orm.hibernate.cfg.Identity; import org.grails.orm.hibernate.cfg.Mapping; import org.grails.orm.hibernate.cfg.domainbinding.hibernate.GrailsHibernatePersistentEntity; import org.grails.orm.hibernate.cfg.domainbinding.hibernate.HibernateIdentity; -import org.hibernate.boot.spi.InFlightMetadataCollector; + import org.hibernate.mapping.RootClass; public class IdentityBinder { @@ -40,7 +40,6 @@ public class IdentityBinder { public void bindIdentity( @Nonnull GrailsHibernatePersistentEntity domainClass, RootClass root, - @Nonnull InFlightMetadataCollector mappings, Mapping gormMapping) { HibernateIdentity id = gormMapping != null ? gormMapping.getIdentity() : null; diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/JoinedSubClassBinder.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/JoinedSubClassBinder.java index 35830aac15..2f5fdaa73c 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/JoinedSubClassBinder.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/JoinedSubClassBinder.java @@ -82,7 +82,7 @@ public class JoinedSubClassBinder { mappings.addTable( schemaName, catalogName, - getJoinedSubClassTableName(sub, joinedSubclass, null), + getJoinedSubClassTableName(sub, joinedSubclass), null, false, metadataBuildingContext); @@ -111,8 +111,7 @@ public class JoinedSubClassBinder { private String getJoinedSubClassTableName( GrailsHibernatePersistentEntity sub, - PersistentClass model, - Table denormalizedSuperTable) { + PersistentClass model) { String logicalTableName = GrailsHibernateUtil.unqualify(model.getEntityName()); String physicalTableName = sub.getTableName(namingStrategy); @@ -121,7 +120,7 @@ public class JoinedSubClassBinder { String catalogName = sub.getCatalog(mappings); mappings.addTableNameBinding( - schemaName, catalogName, logicalTableName, physicalTableName, denormalizedSuperTable); + schemaName, catalogName, logicalTableName, physicalTableName, null); return physicalTableName; } } diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/ManyToOneValuesBinder.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/ManyToOneValuesBinder.java index a37002ecfc..255af28272 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/ManyToOneValuesBinder.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/ManyToOneValuesBinder.java @@ -34,7 +34,7 @@ public class ManyToOneValuesBinder { var fetchMode = Optional.ofNullable(config.getFetchMode()).orElse(FetchMode.DEFAULT); manyToOne.setFetchMode(fetchMode); - var lazy = Optional.ofNullable(config.getLazy()).orElse(property != null); + var lazy = Optional.ofNullable(config.getLazy()).orElse(true); manyToOne.setLazy(lazy); manyToOne.setIgnoreNotFound(config.getIgnoreNotFound()); diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/RootBinder.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/RootBinder.java index 2f52401cc7..5fd2a224f5 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/RootBinder.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/RootBinder.java @@ -71,7 +71,7 @@ public class RootBinder { Collection<GrailsHibernatePersistentEntity> children = entity.getChildEntities(dataSourceName); RootClass root = rootPersistentClassCommonValuesBinder.bindRootPersistentClassCommonValues( - entity, children); + entity); if (!children.isEmpty() && entity.isTablePerHierarchy()) { discriminatorPropertyBinder.bindDiscriminatorProperty(root); diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/RootPersistentClassCommonValuesBinder.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/RootPersistentClassCommonValuesBinder.java index 1b8efc451d..781a7ade71 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/RootPersistentClassCommonValuesBinder.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/RootPersistentClassCommonValuesBinder.java @@ -21,7 +21,7 @@ package org.grails.orm.hibernate.cfg.domainbinding.binder; import static java.util.Optional.ofNullable; import jakarta.annotation.Nonnull; -import java.util.Collection; + import org.grails.orm.hibernate.cfg.CacheConfig; import org.grails.orm.hibernate.cfg.Mapping; import org.grails.orm.hibernate.cfg.PersistentEntityNamingStrategy; @@ -62,8 +62,7 @@ public class RootPersistentClassCommonValuesBinder { } public RootClass bindRootPersistentClassCommonValues( - @Nonnull GrailsHibernatePersistentEntity domainClass, - @Nonnull Collection<GrailsHibernatePersistentEntity> children) { + @Nonnull GrailsHibernatePersistentEntity domainClass) { RootClass root = new RootClass(this.metadataBuildingContext); root.setAbstract(domainClass.isAbstract()); @@ -108,7 +107,7 @@ public class RootPersistentClassCommonValuesBinder { + root.getTable().getName()); } - identityBinder.bindIdentity(domainClass, root, mappings, gormMapping); + identityBinder.bindIdentity(domainClass, root, gormMapping); versionBinder.bindVersion(domainClass.getVersion(), root); root.createPrimaryKey(); classPropertiesBinder.bindClassProperties(domainClass, root); diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SimpleValueBinder.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SimpleValueBinder.java index 161ac76f3d..f4e303606e 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SimpleValueBinder.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SimpleValueBinder.java @@ -24,7 +24,6 @@ import org.grails.orm.hibernate.cfg.ColumnConfig; import org.grails.orm.hibernate.cfg.PersistentEntityNamingStrategy; import org.grails.orm.hibernate.cfg.PropertyConfig; import org.grails.orm.hibernate.cfg.domainbinding.generator.GrailsSequenceWrapper; -import org.grails.orm.hibernate.cfg.domainbinding.hibernate.GrailsHibernatePersistentEntity; import org.grails.orm.hibernate.cfg.domainbinding.hibernate.HibernatePersistentProperty; import org.hibernate.boot.spi.MetadataBuildingContext; import org.hibernate.engine.jdbc.env.spi.JdbcEnvironment; @@ -76,15 +75,7 @@ public class SimpleValueBinder { new GrailsSequenceWrapper()); } - /** Protected constructor for testing purposes. */ - protected SimpleValueBinder() { - this.metadataBuildingContext = null; - this.namingStrategy = null; - this.columnConfigToColumnBinder = null; - this.columnBinder = null; - this.jdbcEnvironment = null; - this.grailsSequenceWrapper = null; - } + public BasicValue bindSimpleValue( @jakarta.annotation.Nonnull HibernatePersistentProperty property, @@ -92,11 +83,11 @@ public class SimpleValueBinder { Table table, String path) { BasicValue basicValue = new BasicValue(metadataBuildingContext, table); - bindSimpleValue(property, parentProperty, (SimpleValue) basicValue, path); + bindSimpleValue(property, parentProperty, basicValue, path); return basicValue; } - public void bindSimpleValue( + public SimpleValue bindSimpleValue( @jakarta.annotation.Nonnull HibernatePersistentProperty property, HibernatePersistentProperty parentProperty, SimpleValue simpleValue, @@ -143,6 +134,7 @@ public class SimpleValueBinder { simpleValue.addColumn(column); }); } + return simpleValue; } private Generator createGenerator( @@ -153,7 +145,7 @@ public class SimpleValueBinder { generatorName, context, null, - (GrailsHibernatePersistentEntity) property.getHibernateOwner(), + property.getHibernateOwner(), jdbcEnvironment, namingStrategy); } diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SingleTableSubclassBinder.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SingleTableSubclassBinder.java index 574d99b87f..67b8866d6c 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SingleTableSubclassBinder.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SingleTableSubclassBinder.java @@ -20,7 +20,7 @@ package org.grails.orm.hibernate.cfg.domainbinding.binder; import jakarta.annotation.Nonnull; import org.grails.orm.hibernate.cfg.domainbinding.hibernate.GrailsHibernatePersistentEntity; -import org.hibernate.boot.spi.InFlightMetadataCollector; + import org.hibernate.mapping.SingleTableSubclass; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -43,14 +43,12 @@ public class SingleTableSubclassBinder { /** * Binds a sub-class using table-per-hierarchy inheritance mapping * - * @param sub The Grails domain class instance representing the sub-class + * @param sub The Grails domain class instance representing the sub-class * @param subClass The Hibernate SubClass instance - * @param mappings The mappings instance */ public void bindSubClass( @Nonnull GrailsHibernatePersistentEntity sub, - SingleTableSubclass subClass, - @Nonnull InFlightMetadataCollector mappings) { + SingleTableSubclass subClass) { classBinder.bindClass(sub, subClass); subClass.setDiscriminatorValue(sub.getDiscriminatorValue()); if (LOG.isDebugEnabled()) { diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SubClassBinder.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SubClassBinder.java index 2a5b3c1495..bddd67c6f2 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SubClassBinder.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SubClassBinder.java @@ -19,7 +19,6 @@ package org.grails.orm.hibernate.cfg.domainbinding.binder; import jakarta.annotation.Nonnull; -import java.util.Collection; import org.grails.orm.hibernate.cfg.MappingCacheHolder; import org.grails.orm.hibernate.cfg.domainbinding.hibernate.GrailsHibernatePersistentEntity; import org.grails.orm.hibernate.cfg.domainbinding.util.MultiTenantFilterBinder; diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SubclassMappingBinder.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SubclassMappingBinder.java index 4ec70d17d8..0a2198460a 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SubclassMappingBinder.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SubclassMappingBinder.java @@ -71,7 +71,7 @@ public class SubclassMappingBinder { var singleTableSubclass = new SingleTableSubclass(parent, this.metadataBuildingContext); - singleTableSubclassBinder.bindSubClass(subEntity, singleTableSubclass, mappings); + singleTableSubclassBinder.bindSubClass(subEntity, singleTableSubclass); subClass = singleTableSubclass; } diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/VersionBinder.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/VersionBinder.java index fc6455c721..8dbbb308eb 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/VersionBinder.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/VersionBinder.java @@ -21,11 +21,9 @@ package org.grails.orm.hibernate.cfg.domainbinding.binder; import static org.grails.orm.hibernate.cfg.domainbinding.binder.GrailsDomainBinder.EMPTY_PATH; import java.util.function.BiFunction; -import org.grails.orm.hibernate.cfg.PersistentEntityNamingStrategy; import org.grails.orm.hibernate.cfg.domainbinding.hibernate.HibernatePersistentProperty; import org.hibernate.boot.spi.MetadataBuildingContext; import org.hibernate.engine.OptimisticLockStyle; -import org.hibernate.engine.jdbc.env.spi.JdbcEnvironment; import org.hibernate.mapping.BasicValue; import org.hibernate.mapping.Property; import org.hibernate.mapping.RootClass; @@ -49,16 +47,6 @@ public class VersionBinder { this.basicValueFactory = basicValueFactory; } - public VersionBinder( - MetadataBuildingContext metadataBuildingContext, - PersistentEntityNamingStrategy namingStrategy, - JdbcEnvironment jdbcEnvironment) { - this( - metadataBuildingContext, - new SimpleValueBinder(metadataBuildingContext, namingStrategy, jdbcEnvironment), - new PropertyBinder(), - BasicValue::new); - } public void bindVersion(HibernatePersistentProperty version, RootClass entity) { diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernatePersistentEntity.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernatePersistentEntity.java index d9bc160a16..b029e1d6ec 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernatePersistentEntity.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernatePersistentEntity.java @@ -19,6 +19,7 @@ package org.grails.orm.hibernate.cfg.domainbinding.hibernate; import jakarta.persistence.Entity; +import java.util.Arrays; import java.util.Optional; import org.grails.datastore.mapping.core.connections.ConnectionSourcesSupport; import org.grails.datastore.mapping.model.*; @@ -35,7 +36,7 @@ public class HibernatePersistentEntity extends AbstractPersistentEntity<Mapping> private final AbstractClassMapping<Mapping> classMapping; private String dataSourceName; - public HibernatePersistentEntity(Class javaClass, final MappingContext context) { + public HibernatePersistentEntity(Class<?> javaClass, final MappingContext context) { super(javaClass, context); this.classMapping = new HibernateClassMapping(this, context); @@ -51,10 +52,6 @@ public class HibernatePersistentEntity extends AbstractPersistentEntity<Mapping> return dataSourceName; } - @Override - protected boolean includeIdentifiers() { - return true; - } @Override public ClassMapping<Mapping> getMapping() { @@ -73,16 +70,13 @@ public class HibernatePersistentEntity extends AbstractPersistentEntity<Mapping> @Override @SuppressWarnings({"PMD.DataflowAnomalyAnalysis", "PMD.NullAssignment"}) public HibernatePersistentProperty[] getCompositeIdentity() { - PersistentProperty[] compositeIdentity = super.getCompositeIdentity(); + PersistentProperty<?>[] compositeIdentity = super.getCompositeIdentity(); if (compositeIdentity == null) { return new HibernatePersistentProperty[0]; } - HibernatePersistentProperty[] result = - new HibernatePersistentProperty[compositeIdentity.length]; - for (int i = 0; i < compositeIdentity.length; i++) { - result[i] = compositeIdentity[i] instanceof HibernatePersistentProperty ghpp ? ghpp : null; - } - return result; + return Arrays.stream(compositeIdentity) + .map(p -> (HibernatePersistentProperty) p) + .toArray(HibernatePersistentProperty[]::new); } private boolean isAnnotatedEntity() { @@ -99,6 +93,6 @@ public class HibernatePersistentEntity extends AbstractPersistentEntity<Mapping> @Override public HibernatePersistentProperty getVersion() { - return version instanceof HibernatePersistentProperty ghpp ? ghpp : null; + return (HibernatePersistentProperty )version; } } diff --git a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/IdentityBinderSpec.groovy b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/IdentityBinderSpec.groovy index baff483d68..d7fa1be417 100644 --- a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/IdentityBinderSpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/IdentityBinderSpec.groovy @@ -37,7 +37,7 @@ class IdentityBinderSpec extends HibernateGormDatastoreSpec { domainClass.getCompositeIdentity() >> null when: - binder.bindIdentity(domainClass, root, mappings, null) + binder.bindIdentity(domainClass, root, null) then: 1 * simpleIdBinder.bindSimpleId(domainClass, root, null, _) @@ -52,7 +52,7 @@ class IdentityBinderSpec extends HibernateGormDatastoreSpec { domainClass.getCompositeIdentity() >> compositeProps when: - binder.bindIdentity(domainClass, root, mappings, null) + binder.bindIdentity(domainClass, root, null) then: 1 * compositeIdBinder.bindCompositeId(domainClass, root, null) @@ -68,7 +68,7 @@ class IdentityBinderSpec extends HibernateGormDatastoreSpec { gormMapping.getIdentity() >> compositeIdentity when: - binder.bindIdentity(domainClass, root, mappings, gormMapping) + binder.bindIdentity(domainClass, root, gormMapping) then: 1 * compositeIdBinder.bindCompositeId(domainClass, root, compositeIdentity) @@ -88,7 +88,7 @@ class IdentityBinderSpec extends HibernateGormDatastoreSpec { domainClass.getName() >> "MyEntity" when: - binder.bindIdentity(domainClass, root, mappings, gormMapping) + binder.bindIdentity(domainClass, root, gormMapping) then: 1 * simpleIdBinder.bindSimpleId(domainClass, root, identity, _) @@ -107,7 +107,7 @@ class IdentityBinderSpec extends HibernateGormDatastoreSpec { domainClass.getName() >> "MyEntity" when: - binder.bindIdentity(domainClass, root, mappings, gormMapping) + binder.bindIdentity(domainClass, root, gormMapping) then: 1 * simpleIdBinder.bindSimpleId(domainClass, root, identity, _) @@ -127,7 +127,7 @@ class IdentityBinderSpec extends HibernateGormDatastoreSpec { domainClass.getName() >> "MyEntity" when: - binder.bindIdentity(domainClass, root, mappings, gormMapping) + binder.bindIdentity(domainClass, root, gormMapping) then: identity.getName() == "MyEntity" diff --git a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/RootBinderSpec.groovy b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/RootBinderSpec.groovy index df21696b11..790546e79d 100644 --- a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/RootBinderSpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/RootBinderSpec.groovy @@ -57,7 +57,7 @@ class RootBinderSpec extends HibernateGormDatastoreSpec { binder.bindRoot(entity) then: - 1 * rootPersistentClassCommonValuesBinder.bindRootPersistentClassCommonValues(entity, []) >> rootClass + 1 * rootPersistentClassCommonValuesBinder.bindRootPersistentClassCommonValues(entity) >> rootClass 0 * discriminatorPropertyBinder.bindDiscriminatorProperty(_) 0 * subClassBinder.bindSubClass(_, _) 1 * multiTenantFilterBinder.bind(entity, rootClass) @@ -84,7 +84,7 @@ class RootBinderSpec extends HibernateGormDatastoreSpec { binder.bindRoot(entity) then: - 1 * rootPersistentClassCommonValuesBinder.bindRootPersistentClassCommonValues(entity, [childEntity]) >> rootClass + 1 * rootPersistentClassCommonValuesBinder.bindRootPersistentClassCommonValues(entity) >> rootClass 1 * discriminatorPropertyBinder.bindDiscriminatorProperty(rootClass) 1 * subClassBinder.bindSubClass(childEntity, rootClass) 1 * multiTenantFilterBinder.bind(entity, rootClass) diff --git a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/RootPersistentClassCommonValuesBinderSpec.groovy b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/RootPersistentClassCommonValuesBinderSpec.groovy index 49878ddaee..fbb838dbe5 100644 --- a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/RootPersistentClassCommonValuesBinderSpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/RootPersistentClassCommonValuesBinderSpec.groovy @@ -53,7 +53,7 @@ class RootPersistentClassCommonValuesBinderSpec extends HibernateGormDatastoreSp def mappings = getCollector() when: - RootClass rootClass = binder.bindRootPersistentClassCommonValues(entity, []) + RootClass rootClass = binder.bindRootPersistentClassCommonValues(entity) then: 1 * classPropertiesBinder.bindClassProperties(entity, _) @@ -69,7 +69,7 @@ class RootPersistentClassCommonValuesBinderSpec extends HibernateGormDatastoreSp def mappings = getCollector() when: - RootClass rootClass = binder.bindRootPersistentClassCommonValues(entity, []) + RootClass rootClass = binder.bindRootPersistentClassCommonValues(entity) then: rootClass != null diff --git a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SingleTableSubclassBinderSpec.groovy b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SingleTableSubclassBinderSpec.groovy index ee4844fdf0..a3bcea9100 100644 --- a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SingleTableSubclassBinderSpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SingleTableSubclassBinderSpec.groovy @@ -41,7 +41,7 @@ class SingleTableSubclassBinderSpec extends HibernateGormDatastoreSpec { singleTableSubclass.setEntityName(SingleTableSubClassSub.name) when: - binder.bindSubClass(subEntity, singleTableSubclass, mappings) + binder.bindSubClass(subEntity, singleTableSubclass) then: singleTableSubclass.getTable() == rootTable diff --git a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SubclassMappingBinderSpec.groovy b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SubclassMappingBinderSpec.groovy index 55eb97790e..fa93644daf 100644 --- a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SubclassMappingBinderSpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SubclassMappingBinderSpec.groovy @@ -2,16 +2,13 @@ package org.grails.orm.hibernate.cfg.domainbinding.binder import grails.gorm.annotation.Entity import grails.gorm.specs.HibernateGormDatastoreSpec -import org.grails.orm.hibernate.cfg.Mapping + import org.hibernate.boot.spi.MetadataBuildingContext import org.hibernate.mapping.JoinedSubclass -import org.hibernate.mapping.PersistentClass import org.hibernate.mapping.RootClass import org.hibernate.mapping.SingleTableSubclass import org.hibernate.mapping.Subclass import org.hibernate.mapping.UnionSubclass -import org.grails.orm.hibernate.cfg.domainbinding.hibernate.GrailsHibernatePersistentEntity -import spock.lang.Shared class SubclassMappingBinderSpec extends HibernateGormDatastoreSpec { @@ -53,7 +50,7 @@ class SubclassMappingBinderSpec extends HibernateGormDatastoreSpec { then: subEntity != null - 1 * singleTableSubclassBinder.bindSubClass(subEntity, _ as SingleTableSubclass, mappings) + 1 * singleTableSubclassBinder.bindSubClass(subEntity, _ as SingleTableSubclass) 1 * classPropertiesBinder.bindClassProperties(subEntity, _ as Subclass) subClass instanceof SingleTableSubclass subClass.getEntityName() == SMBSSingleSub.name
