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 840a5d333a8fd85b5a1169d1634770b754dc3134 Author: Walter B Duque de Estrada <[email protected]> AuthorDate: Sun Jan 25 15:36:58 2026 -0600 progress --- .../orm/hibernate/cfg/GrailsDomainBinder.java | 25 ++++++---------------- .../HibernateDirtyCheckingSpec.groovy | 1 - 2 files changed, 7 insertions(+), 19 deletions(-) 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 ff2e9a4b36..29c0290983 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 @@ -49,7 +49,6 @@ import org.hibernate.boot.spi.AdditionalMappingContributions; import org.hibernate.boot.spi.AdditionalMappingContributor; import org.hibernate.boot.spi.InFlightMetadataCollector; import org.hibernate.boot.spi.MetadataBuildingContext; -import org.hibernate.engine.OptimisticLockStyle; import org.hibernate.engine.jdbc.env.spi.JdbcEnvironment; import org.hibernate.engine.spi.FilterDefinition; import org.hibernate.mapping.Backref; @@ -1139,7 +1138,13 @@ public class GrailsDomainBinder Optional.ofNullable(persistentEntity).ifPresent(domainClass -> { try { final Mapping m = new HibernateEntityWrapper().getMappedForm(domainClass); - trackCustomCascadingSaves(m, domainClass.getPersistentProperties()); + for (PersistentProperty property : domainClass.getPersistentProperties()) { + PropertyConfig propConf = m.getPropertyConfig(property.getName()); + + if (propConf != null && propConf.getCascade() != null) { + propConf.setExplicitSaveUpdateCascade(CascadeBehavior.isSaveUpdate(propConf.getCascade())); + } + } cacheMapping(domainClass.getJavaClass(), m); } catch (Exception e) { throw new DatastoreConfigurationException("Error evaluating ORM mappings block for domain [" + @@ -1149,21 +1154,6 @@ public class GrailsDomainBinder } - /** - * Checks for any custom cascading saves set up via the mapping DSL and records them within the persistent property. - * @param mapping The Mapping. - * @param persistentProperties The persistent properties of the domain class. - */ - private void trackCustomCascadingSaves(Mapping mapping, Iterable<PersistentProperty> persistentProperties) { - for (PersistentProperty property : persistentProperties) { - PropertyConfig propConf = mapping.getPropertyConfig(property.getName()); - - if (propConf != null && propConf.getCascade() != null) { - propConf.setExplicitSaveUpdateCascade(CascadeBehavior.isSaveUpdate(propConf.getCascade())); - } - } - } - /** * Binds a root class (one with no super classes) to the runtime meta model @@ -1814,7 +1804,6 @@ public class GrailsDomainBinder */ private void bindComponent(Component component, Embedded property, boolean isNullable, InFlightMetadataCollector mappings, String sessionFactoryBeanName) { - component.setEmbedded(true); Class<?> type = property.getType(); String role = qualify(type.getName(), property.getName()); component.setRoleName(role); diff --git a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/dirtychecking/HibernateDirtyCheckingSpec.groovy b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/dirtychecking/HibernateDirtyCheckingSpec.groovy index 7df8e2943d..967041d4c6 100644 --- a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/dirtychecking/HibernateDirtyCheckingSpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/dirtychecking/HibernateDirtyCheckingSpec.groovy @@ -70,7 +70,6 @@ class HibernateDirtyCheckingSpec extends HibernateGormDatastoreSpec { } @Rollback - //TODO Embedded class not working void "test dirty checking on embedded"() { given: 'a new person' Person person = new Person(name: 'John', occupation: 'Grails developer', address: new Address(street: "Old Town", zip: "1234")).save(flush: true)
