This is an automated email from the ASF dual-hosted git repository.

borinquenkid pushed a commit to branch merge-hibernate6
in repository https://gitbox.apache.org/repos/asf/grails-core.git

commit 7551a15121c5c8cda36e32bd47b4e9f69e2d3d37
Author: Walter Duque de Estrada <[email protected]>
AuthorDate: Sat Jul 12 18:41:32 2025 -0500

    refactor getMappedForm
---
 .../grails/orm/hibernate/cfg/GrailsDomainBinder.java    | 17 ++++++++++-------
 .../datastore/mapping/model/PersistentProperty.java     |  8 ++++++++
 2 files changed, 18 insertions(+), 7 deletions(-)

diff --git 
a/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java
 
b/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java
index 793d49b266..53cc91f2e2 100644
--- 
a/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java
+++ 
b/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java
@@ -814,7 +814,7 @@ public class GrailsDomainBinder implements 
MetadataContributor {
     }
 
     private void bindColumnConfigToColumn(PersistentProperty property, Column 
column, ColumnConfig columnConfig) {
-        final PropertyConfig mappedForm = property != null ? (PropertyConfig) 
property.getMapping().getMappedForm() : null;
+        final PropertyConfig mappedForm = getPropertyConfig(property);
         boolean allowUnique = mappedForm != null && 
!mappedForm.isUniqueWithinGroup();
 
         if (columnConfig == null) {
@@ -891,7 +891,10 @@ public class GrailsDomainBinder implements 
MetadataContributor {
     }
 
     private PropertyConfig getPropertyConfig(PersistentProperty property) {
-        return (PropertyConfig) property.getMapping().getMappedForm();
+        return  Optional.ofNullable(property)
+                .map(PersistentProperty::getMappedForm)
+                .map(PropertyConfig.class::cast)
+                .orElse(null);
     }
 
     /**
@@ -2639,7 +2642,7 @@ public class GrailsDomainBinder implements 
MetadataContributor {
         }
 
         AccessType accessType = AccessType.getAccessStrategy(
-                grailsProperty.getMapping().getMappedForm().getAccessType()
+               getPropertyConfig(grailsProperty).getAccessType()
         );
 
         if(accessType == AccessType.FIELD) {
@@ -3120,7 +3123,7 @@ public class GrailsDomainBinder implements 
MetadataContributor {
         if (property instanceof Association) {
             Association association = (Association) property;
             boolean isBasic = property instanceof Basic;
-            if(isBasic && 
((PropertyConfig)property.getMapping().getMappedForm()).getType() != null ) {
+            if(isBasic && (getPropertyConfig(property)).getType() != null ) {
                 return columnName;
             }
 
@@ -3199,7 +3202,7 @@ public class GrailsDomainBinder implements 
MetadataContributor {
      * @param constrainedProperty the property's constraints
      */
     private void bindStringColumnConstraints(Column column, PersistentProperty 
constrainedProperty) {
-        final org.grails.datastore.mapping.config.Property mappedForm = 
constrainedProperty.getMapping().getMappedForm();
+        final org.grails.datastore.mapping.config.Property mappedForm = 
getPropertyConfig(constrainedProperty);
         Number columnLength = mappedForm.getMaxSize();
         List<?> inListValues = mappedForm.getInList();
         if (columnLength != null) {
@@ -3226,7 +3229,7 @@ public class GrailsDomainBinder implements 
MetadataContributor {
         int precision =  org.hibernate.engine.jdbc.Size.DEFAULT_PRECISION;
 
 
-        PropertyConfig constrainedProperty = (PropertyConfig) 
property.getMapping().getMappedForm();
+        PropertyConfig constrainedProperty = getPropertyConfig(property);
         if(  cc != null && cc.getScale() > - 1) {
             column.setScale(cc.getScale());
         } else if (constrainedProperty.getScale() > -1) {
@@ -3299,7 +3302,7 @@ public class GrailsDomainBinder implements 
MetadataContributor {
     }
 
     private void handleUniqueConstraint(PersistentProperty property, Column 
column, String path, Table table, String columnName, String 
sessionFactoryBeanName) {
-        final PropertyConfig mappedForm = (PropertyConfig) 
property.getMapping().getMappedForm();
+        final PropertyConfig mappedForm = getPropertyConfig(property);
         if (mappedForm.isUnique()) {
             if (!mappedForm.isUniqueWithinGroup()) {
                 column.setUnique(true);
diff --git 
a/grails-datastore-core/src/main/groovy/org/grails/datastore/mapping/model/PersistentProperty.java
 
b/grails-datastore-core/src/main/groovy/org/grails/datastore/mapping/model/PersistentProperty.java
index 057291808c..ec37169dac 100644
--- 
a/grails-datastore-core/src/main/groovy/org/grails/datastore/mapping/model/PersistentProperty.java
+++ 
b/grails-datastore-core/src/main/groovy/org/grails/datastore/mapping/model/PersistentProperty.java
@@ -22,6 +22,8 @@ package org.grails.datastore.mapping.model;
 import org.grails.datastore.mapping.config.Property;
 import org.grails.datastore.mapping.reflect.EntityReflector;
 
+import java.util.Optional;
+
 /**
  * @author Graeme Rocher
  * @since 1.0
@@ -54,6 +56,12 @@ public interface PersistentProperty<T extends Property> {
     */
     PropertyMapping<T> getMapping();
 
+    default T getMappedForm() {
+        return Optional.of(getMapping())
+                .map(PropertyMapping::getMappedForm)
+                .orElse(null);
+    }
+
     /**
      * Obtains the owner of this persistent property
      *

Reply via email to