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 6a4f9cd4d53a5879d5cc47bd54907370d7ac0a2e Author: Walter Duque de Estrada <[email protected]> AuthorDate: Sat Jul 12 17:41:49 2025 -0500 TypeNameProvider --- .../org/grails/orm/hibernate/cfg/GrailsDomainBinder.java | 14 +++++++------- .../orm/hibernate/cfg/domainbinding/TypeNameProvider.java | 11 +++++------ .../cfg/domainbinding/TypeNameProviderSpec.groovy | 9 ++++++--- 3 files changed, 18 insertions(+), 16 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 8a61ddb898..185402701f 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 @@ -298,7 +298,7 @@ public class GrailsDomainBinder implements MetadataContributor { PropertyConfig config = getPropertyConfig(property); Mapping mapping = getMapping(property.getOwner()); - String typeName = new TypeNameProvider().getTypeName(property, mapping); + String typeName = new TypeNameProvider().getTypeName(property, config, mapping); if (typeName == null ) { if(property instanceof Basic) { @@ -753,7 +753,7 @@ public class GrailsDomainBinder implements MetadataContributor { else { Mapping mapping = getMapping(property.getOwner()); - String typeName = new TypeNameProvider().getTypeName(property, mapping); + String typeName = new TypeNameProvider().getTypeName(property,config, mapping); if (typeName == null) { Type type = mappings.getTypeConfiguration().getBasicTypeRegistry().getRegisteredType(className); if (type != null) { @@ -1884,7 +1884,7 @@ public class GrailsDomainBinder implements MetadataContributor { } else if (collectionType != null) { PropertyConfig config = getPropertyConfig(currentGrailsProp); - String typeName = new TypeNameProvider().getTypeName(currentGrailsProp, gormMapping); + String typeName = new TypeNameProvider().getTypeName(currentGrailsProp,config, gormMapping); if ("serializable".equals(typeName)) { value = new BasicValue(metadataBuildingContext, table); bindSimpleValue(typeName, (SimpleValue) value, currentGrailsProp.isNullable(), @@ -2071,7 +2071,7 @@ public class GrailsDomainBinder implements MetadataContributor { final PersistentEntity owner = property.getOwner(); PropertyConfig config = getPropertyConfig(property); Mapping mapping1 = getMapping(owner); - String typeName = new TypeNameProvider().getTypeName(property, mapping1); + String typeName = new TypeNameProvider().getTypeName(property,config, mapping1); if (typeName == null) { Properties enumProperties = new Properties(); enumProperties.put(ENUM_CLASS_PROP, propertyType.getName()); @@ -2899,7 +2899,7 @@ public class GrailsDomainBinder implements MetadataContributor { private void setTypeForPropertyConfig(PersistentProperty grailsProp, SimpleValue simpleValue, PropertyConfig config) { Mapping mapping = getMapping(grailsProp.getOwner()); - final String typeName = new TypeNameProvider().getTypeName(grailsProp, mapping); + final String typeName = new TypeNameProvider().getTypeName(grailsProp,getPropertyConfig(grailsProp), mapping); if (typeName == null) { simpleValue.setTypeName(grailsProp.getType().getName()); } @@ -3187,7 +3187,7 @@ public class GrailsDomainBinder implements MetadataContributor { if (pc != null && pc.getIndexColumn() != null && pc.getIndexColumn().getType() != null) { PropertyConfig config = pc.getIndexColumn(); Mapping mapping = getMapping(property.getOwner()); - return new TypeNameProvider().getTypeName(property, mapping); + return new TypeNameProvider().getTypeName(property,config, mapping); } return defaultType; } @@ -3554,7 +3554,7 @@ public class GrailsDomainBinder implements MetadataContributor { public String getTypeName(ToMany property) { PropertyConfig config = binder.getPropertyConfig(property); Mapping mapping = getMapping(property.getOwner()); - return new TypeNameProvider().getTypeName(property, mapping); + return new TypeNameProvider().getTypeName(property,config, mapping); } } diff --git a/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/TypeNameProvider.java b/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/TypeNameProvider.java index 6aa05e5dfd..ff16e2d07c 100644 --- a/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/TypeNameProvider.java +++ b/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/TypeNameProvider.java @@ -9,9 +9,10 @@ import static java.util.Optional.ofNullable; public class TypeNameProvider { - public String getTypeName(@NotNull PersistentProperty property - ,@NotNull Mapping mapping) { - return ofNullable(getPropertyConfig(property)) + public String getTypeName( PersistentProperty property + , PropertyConfig propertyConfig + , @NotNull Mapping mapping) { + return ofNullable(propertyConfig) .map(PropertyConfig::getType) .map(typeObj -> typeObj instanceof Class<?> clazz ? clazz.getName() : typeObj.toString() @@ -19,9 +20,7 @@ public class TypeNameProvider { .orElse(mapping.getTypeName(property.getType())); } - private PropertyConfig getPropertyConfig(PersistentProperty property) { - return (PropertyConfig) property.getMapping().getMappedForm(); - } + } diff --git a/grails-data-hibernate6/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/TypeNameProviderSpec.groovy b/grails-data-hibernate6/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/TypeNameProviderSpec.groovy index 14d276440c..ad8bde5622 100644 --- a/grails-data-hibernate6/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/TypeNameProviderSpec.groovy +++ b/grails-data-hibernate6/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/TypeNameProviderSpec.groovy @@ -22,7 +22,8 @@ class TypeNameProviderSpec extends HibernateGormDatastoreSpec { def property = persistentEntity.getPersistentProperties()[0] Mapping mapping = new Mapping() mapping.setUserTypes(["foo.Bar": persistentEntity.getJavaClass()]) - def name = new TypeNameProvider().getTypeName(property, mapping) + def config = grailsDomainBinder.getPropertyConfig(property) + def name = new TypeNameProvider().getTypeName(property,config , mapping) then: name == "text" @@ -38,7 +39,8 @@ class TypeNameProviderSpec extends HibernateGormDatastoreSpec { def persistentEntity = createPersistentEntity(grailsDomainBinder, simpleName, fieldProperties, mappingProperties) def property = persistentEntity.getPersistentProperties()[0] Mapping mapping = new Mapping() - def name = new TypeNameProvider().getTypeName(property, mapping) + def config = grailsDomainBinder.getPropertyConfig(property) + def name = new TypeNameProvider().getTypeName(property,config , mapping) then: name == "java.lang.String" @@ -53,7 +55,8 @@ class TypeNameProviderSpec extends HibernateGormDatastoreSpec { def property = persistentEntity.getPersistentProperties()[0] Mapping mapping = new Mapping() mapping.setUserTypes([(Salary): SalaryType]) - def name = new TypeNameProvider().getTypeName(property, mapping) + def config = grailsDomainBinder.getPropertyConfig(property) + def name = new TypeNameProvider().getTypeName(property,config , mapping) then: name == SalaryType.name
