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 *
