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 d29d3122c237c17c6f21a9df42a6b05c33113593
Author: Walter Duque de Estrada <[email protected]>
AuthorDate: Thu Mar 5 07:50:56 2026 -0600

    cleanup(hibernate7): ConfigureDerivedPropertiesConsumer
---
 .../util/ConfigureDerivedPropertiesConsumer.java   |  5 +-
 .../ConfigureDerivedPropertiesConsumerSpec.groovy  | 68 ++++++++++++----------
 2 files changed, 41 insertions(+), 32 deletions(-)

diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/ConfigureDerivedPropertiesConsumer.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/ConfigureDerivedPropertiesConsumer.java
index 2c22d58277..e870c85e84 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/ConfigureDerivedPropertiesConsumer.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/ConfigureDerivedPropertiesConsumer.java
@@ -24,8 +24,9 @@ import java.util.Objects;
 import java.util.function.Consumer;
 import org.grails.datastore.mapping.model.PersistentProperty;
 import org.grails.orm.hibernate.cfg.Mapping;
+import 
org.grails.orm.hibernate.cfg.domainbinding.hibernate.HibernatePersistentProperty;
 
-public class ConfigureDerivedPropertiesConsumer implements 
Consumer<PersistentProperty> {
+public class ConfigureDerivedPropertiesConsumer implements 
Consumer<HibernatePersistentProperty> {
 
   private final Mapping m;
 
@@ -34,7 +35,7 @@ public class ConfigureDerivedPropertiesConsumer implements 
Consumer<PersistentPr
   }
 
   @Override
-  public void accept(PersistentProperty persistentProperty) {
+  public void accept(HibernatePersistentProperty persistentProperty) {
     ofNullable(m.getPropertyConfig(persistentProperty.getName()))
         .ifPresent(
             propertyConfig ->
diff --git 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ConfigureDerivedPropertiesConsumerSpec.groovy
 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ConfigureDerivedPropertiesConsumerSpec.groovy
index 3c340ed18f..8928764bb8 100644
--- 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ConfigureDerivedPropertiesConsumerSpec.groovy
+++ 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ConfigureDerivedPropertiesConsumerSpec.groovy
@@ -1,31 +1,37 @@
 package org.grails.orm.hibernate.cfg.domainbinding
 
 import grails.gorm.specs.HibernateGormDatastoreSpec
-import org.grails.datastore.mapping.model.PersistentProperty
-import org.grails.orm.hibernate.cfg.Mapping
-import org.grails.orm.hibernate.cfg.PropertyConfig
+import grails.gorm.hibernate.HibernateEntity
+import 
org.grails.orm.hibernate.cfg.domainbinding.hibernate.HibernatePersistentProperty
 import spock.lang.Subject
 
 import 
org.grails.orm.hibernate.cfg.domainbinding.util.ConfigureDerivedPropertiesConsumer
 
 class ConfigureDerivedPropertiesConsumerSpec extends 
HibernateGormDatastoreSpec {
 
+    HibernatePersistentProperty titleProperty
+
+    def setupSpec() {
+        manager.addAllDomainClasses([CDPCBook])
+    }
+
+    def setup() {
+        titleProperty = mappingContext.getPersistentEntity(CDPCBook.name)
+            .persistentProperties.find { it.name == 'title' } as 
HibernatePersistentProperty
+    }
+
     def "should set derived to true if formula is present"() {
         given:
-        def mapping = Mock(Mapping)
-        def propConfig = new PropertyConfig()
-        propConfig.setFormula("some SQL formula")
-        
-        def persistentProperty = Mock(PersistentProperty)
-        persistentProperty.getName() >> "derivedProp"
-        
-        mapping.getPropertyConfig("derivedProp") >> propConfig
-        
+        def mapping = 
mappingContext.getPersistentEntity(CDPCBook.name).mappedForm
+        def propConfig = new org.grails.orm.hibernate.cfg.PropertyConfig()
+        propConfig.formula = "upper(title)"
+        mapping.columns['title'] = propConfig
+
         @Subject
         def consumer = new ConfigureDerivedPropertiesConsumer(mapping)
 
         when:
-        consumer.accept(persistentProperty)
+        consumer.accept(titleProperty)
 
         then:
         propConfig.isDerived() == true
@@ -33,20 +39,16 @@ class ConfigureDerivedPropertiesConsumerSpec extends 
HibernateGormDatastoreSpec
 
     def "should set derived to false if formula is null"() {
         given:
-        def mapping = Mock(Mapping)
-        def propConfig = new PropertyConfig()
-        propConfig.setFormula(null)
-        
-        def persistentProperty = Mock(PersistentProperty)
-        persistentProperty.getName() >> "nonDerivedProp"
-        
-        mapping.getPropertyConfig("nonDerivedProp") >> propConfig
-        
+        def mapping = 
mappingContext.getPersistentEntity(CDPCBook.name).mappedForm
+        def propConfig = new org.grails.orm.hibernate.cfg.PropertyConfig()
+        propConfig.formula = null
+        mapping.columns['title'] = propConfig
+
         @Subject
         def consumer = new ConfigureDerivedPropertiesConsumer(mapping)
 
         when:
-        consumer.accept(persistentProperty)
+        consumer.accept(titleProperty)
 
         then:
         propConfig.isDerived() == false
@@ -54,19 +56,25 @@ class ConfigureDerivedPropertiesConsumerSpec extends 
HibernateGormDatastoreSpec
 
     def "should do nothing if property configuration is missing"() {
         given:
-        def mapping = Mock(Mapping)
-        def persistentProperty = Mock(PersistentProperty)
-        persistentProperty.getName() >> "missingProp"
-        
-        mapping.getPropertyConfig("missingProp") >> null
-        
+        def mapping = 
mappingContext.getPersistentEntity(CDPCBook.name).mappedForm
+
         @Subject
         def consumer = new ConfigureDerivedPropertiesConsumer(mapping)
 
+        // use a property name with no PropertyConfig entry
+        HibernatePersistentProperty idProp = mappingContext
+            .getPersistentEntity(CDPCBook.name).identity as 
HibernatePersistentProperty
+
         when:
-        consumer.accept(persistentProperty)
+        consumer.accept(idProp)
 
         then:
         noExceptionThrown()
     }
 }
+
+class CDPCBook implements HibernateEntity<CDPCBook> {
+    Long id
+    Long version
+    String title
+}

Reply via email to