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 7bcd30fa9354df38982ae3867085c65a435f153d Author: Walter Duque de Estrada <[email protected]> AuthorDate: Wed Feb 4 19:02:06 2026 -0600 GrailsHibernatePersistentProperty --- .../hibernate/cfg/GrailsHibernatePersistentProperty.java | 14 ++++++-------- .../orm/hibernate/cfg/domainbinding/EnumTypeBinder.java | 8 ++------ 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsHibernatePersistentProperty.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsHibernatePersistentProperty.java index 0976f5993e..6ecf3787a2 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsHibernatePersistentProperty.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsHibernatePersistentProperty.java @@ -19,14 +19,7 @@ public interface GrailsHibernatePersistentProperty extends PersistentProperty<Pr */ default String getTypeName() { GrailsHibernatePersistentEntity owner = getHibernateOwner(); - return getTypeName(owner != null ? owner.getMappedForm() : null); - } - - /** - * @param mapping The mapping - * @return The type name - */ - default String getTypeName(Mapping mapping) { + Mapping mapping = owner != null ? owner.getMappedForm() : null; return getTypeName(getMappedForm(), mapping); } @@ -110,4 +103,9 @@ public interface GrailsHibernatePersistentProperty extends PersistentProperty<Pr default boolean isSerializableType() { return "serializable".equals(getTypeName()); } + + default boolean isTablePerHierarchySubclass() { + Mapping ownerMapping = getHibernateOwner().getMappedForm(); + return !getHibernateOwner().isRoot() && (ownerMapping == null || ownerMapping.getTablePerHierarchy()); + } } \ No newline at end of file diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/EnumTypeBinder.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/EnumTypeBinder.java index 8e9bae6899..91292334de 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/EnumTypeBinder.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/EnumTypeBinder.java @@ -41,14 +41,10 @@ public class EnumTypeBinder { public void bindEnumType(GrailsHibernatePersistentProperty property, Class<?> propertyType, SimpleValue simpleValue, String columnName) { PropertyConfig pc = property.getMappedForm(); - Mapping ownerMapping = null; - if (property.getOwner() instanceof GrailsHibernatePersistentEntity persistentEntity) { - ownerMapping = persistentEntity.getMappedForm(); - } String enumType = pc.getEnumType(); Properties enumProperties = new Properties(); enumProperties.put(ENUM_CLASS_PROP, propertyType.getName()); - String typeName = property.getTypeName(ownerMapping); + String typeName = property.getTypeName(); if (typeName != null) { simpleValue.setTypeName(typeName); } else { @@ -70,7 +66,7 @@ public class EnumTypeBinder { simpleValue.setTypeParameters(enumProperties); Column column = new Column(); - boolean isTablePerHierarchySubclass = !property.getOwner().isRoot() && (ownerMapping == null || ownerMapping.getTablePerHierarchy()); + boolean isTablePerHierarchySubclass = property.isTablePerHierarchySubclass(); if (isTablePerHierarchySubclass) { // Properties on subclasses in a table-per-hierarchy strategy must be nullable. if (LOG.isDebugEnabled()) {
