This is an automated email from the ASF dual-hosted git repository. borinquenkid pushed a commit to branch 8.0.x-hibernate7 in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit 5ea8185345f163f6d7be23026fa108ba1200051a Author: Walter B Duque de Estrada <[email protected]> AuthorDate: Sun Jan 25 21:44:26 2026 -0600 progress --- .../grails/orm/hibernate/HibernateDatastore.java | 4 +- .../orm/hibernate/cfg/GrailsDomainBinder.java | 82 +--------------------- .../orm/hibernate/cfg/MappingCacheHolder.java | 5 ++ 3 files changed, 10 insertions(+), 81 deletions(-) diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/HibernateDatastore.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/HibernateDatastore.java index 089dbd08b0..039f206597 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/HibernateDatastore.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/HibernateDatastore.java @@ -41,8 +41,8 @@ import org.grails.datastore.mapping.model.PersistentEntity; import org.grails.datastore.mapping.multitenancy.AllTenantsResolver; import org.grails.datastore.mapping.multitenancy.MultiTenancySettings; import org.grails.datastore.mapping.validation.ValidatorRegistry; -import org.grails.orm.hibernate.cfg.GrailsDomainBinder; import org.grails.orm.hibernate.cfg.HibernateMappingContext; +import org.grails.orm.hibernate.cfg.MappingCacheHolder; import org.grails.orm.hibernate.cfg.Settings; import org.grails.orm.hibernate.connections.HibernateConnectionSource; import org.grails.orm.hibernate.connections.HibernateConnectionSourceFactory; @@ -526,7 +526,7 @@ public class HibernateDatastore extends AbstractHibernateDatastore implements Me try { super.destroy(); } finally { - GrailsDomainBinder.clearMappingCache(); + MappingCacheHolder.getInstance().clear(); try { this.gormEnhancer.close(); } catch (IOException e) { diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java index 055e54b103..c4b2054829 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java @@ -145,74 +145,6 @@ public class GrailsDomainBinder private PersistentEntityNamingStrategy namingStrategy; private MetadataBuildingContext metadataBuildingContext; - /** - * Obtains a mapping object for the given domain class nam - * - * @param theClass The domain class in question - * @return A Mapping object or null - */ - public static Mapping getMapping(Class<?> theClass) { - return MappingCacheHolder.getInstance().getMapping(theClass); - } - - /** - * Obtains a mapping object for the given domain class nam - * - * @param theClass The domain class in question - * @return A Mapping object or null - */ - public static Mapping getMappingValidated(Class<?> theClass) { - return ofNullable(getMapping(theClass)).orElseThrow(); - } - - /** - * Obtains a mapping object for the given domain class nam - * - * @param theClass The domain class in question - */ - public static void cacheMapping(Class<?> theClass, Mapping mapping) { - MappingCacheHolder.getInstance().cacheMapping(theClass, mapping); - } - - /** - * Obtains a mapping object for the given domain class nam - * - * @param domainClass The domain class in question - * @return A Mapping object or null - */ - public static Mapping getMapping(PersistentEntity domainClass) { - if (domainClass == null) return null; - if (domainClass instanceof GrailsHibernatePersistentEntity) { - return getMapping((GrailsHibernatePersistentEntity) domainClass); - } - org.grails.datastore.mapping.config.Entity mappedForm = domainClass.getMappedForm(); - if (mappedForm instanceof Mapping) { - return (Mapping) mappedForm; - } - return MappingCacheHolder.getInstance().getMapping(domainClass.getJavaClass()); - } - - /** - * Obtains a mapping object for the given domain class nam - * - * @param domainClass The domain class in question - * @return A Mapping object or null - */ - public static Mapping getMapping(GrailsHibernatePersistentEntity domainClass) { - if (domainClass == null) return null; - return domainClass.getMappedForm(); - } - - - - public static void clearMappingCache() { - MappingCacheHolder.getInstance().clear(); - } - - public static void clearMappingCache(Class<?> theClass) { - MappingCacheHolder.getInstance().clear(theClass); - } - public JdbcEnvironment getJdbcEnvironment() { return metadataBuildingContext.getMetadataCollector().getDatabase().getJdbcEnvironment(); @@ -278,16 +210,11 @@ public class GrailsDomainBinder ); hibernateMappingContext.getHibernatePersistentEntities().stream() - .filter(this::isForGrailsDomainMapping) + .filter(persistentEntity -> persistentEntity.forGrailsDomainMapping(dataSourceName)) .forEach(hibernatePersistentEntity -> bindRoot(hibernatePersistentEntity, metadataCollector, sessionFactoryName)); } - private boolean isForGrailsDomainMapping(GrailsHibernatePersistentEntity persistentEntity) { - return persistentEntity.forGrailsDomainMapping(dataSourceName); - } - - /** * Override the default naming strategy for the default datasource given a Class or a full class name. * @param strategy the class or name @@ -420,7 +347,7 @@ public class GrailsDomainBinder PersistentClass referenced = mappings.getEntityBinding(entityName); Class<?> mappedClass = referenced.getMappedClass(); - Mapping m = getMappingValidated(mappedClass); + Mapping m = Optional.ofNullable(MappingCacheHolder.getInstance().getMapping(mappedClass)).orElseThrow(); boolean compositeIdProperty = m.isCompositeIdProperty(property.getInverseSide()); if (!compositeIdProperty) { @@ -1166,10 +1093,7 @@ public class GrailsDomainBinder private void evaluateMapping(GrailsHibernatePersistentEntity persistentEntity) { Optional.ofNullable(persistentEntity).ifPresent(domainClass -> { try { - Mapping m = null; - if (domainClass != null) { - m = domainClass.getMappedForm(); - } + Mapping m = domainClass.getMappedForm(); for (PersistentProperty property : domainClass.getPersistentProperties()) { PropertyConfig propConf = m.getPropertyConfig(property.getName()); diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/MappingCacheHolder.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/MappingCacheHolder.java index 582ba9822f..c1a95b7d8e 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/MappingCacheHolder.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/MappingCacheHolder.java @@ -30,6 +30,11 @@ public class MappingCacheHolder { return theClass == null ? null : MAPPING_CACHE.get(theClass); } + /** + * Obtains a mapping object for the given domain class nam + * + * @param theClass The domain class in question + */ public void cacheMapping(Class<?> theClass, Mapping mapping) { MAPPING_CACHE.put(theClass, mapping); }
