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 4b1b759e42d61fb9063693766dcbe76ed9dc5aaa Author: Walter Duque de Estrada <[email protected]> AuthorDate: Wed Feb 25 13:31:18 2026 -0600 refactor validateAssociation --- .../hibernate/HibernateAssociation.java | 13 +++++++++++++ .../hibernate/HibernateOneToOneProperty.java | 12 ++++++++++++ .../hibernate/HibernatePersistentProperty.java | 16 ---------------- .../hibernate/HibernateToOneProperty.java | 22 ---------------------- 4 files changed, 25 insertions(+), 38 deletions(-) diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernateAssociation.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernateAssociation.java index 20412448a1..d5bc7b7c53 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernateAssociation.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernateAssociation.java @@ -20,6 +20,7 @@ package org.grails.orm.hibernate.cfg.domainbinding.hibernate; import java.util.List; +import org.hibernate.MappingException; import org.hibernate.mapping.ManyToOne; import org.hibernate.mapping.Property; @@ -65,6 +66,18 @@ public interface HibernateAssociation extends HibernatePersistentProperty { return (GrailsHibernatePersistentEntity) getAssociatedEntity(); } + @Override + default void validateAssociation() { + if (getUserType() != null) { + throw new MappingException( + "Cannot bind association property [" + + getName() + + "] of type [" + + getType() + + "] to a user type"); + } + } + default boolean isBidirectionalManyToOneWithListMapping(Property prop) { return isBidirectional() && getInverseSide() != null diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernateOneToOneProperty.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernateOneToOneProperty.java index 36f71c2be4..d0a70f13cb 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernateOneToOneProperty.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernateOneToOneProperty.java @@ -23,6 +23,7 @@ import org.grails.datastore.mapping.model.MappingContext; import org.grails.datastore.mapping.model.PersistentEntity; import org.grails.datastore.mapping.model.types.mapping.OneToOneWithMapping; import org.grails.orm.hibernate.cfg.PropertyConfig; +import org.hibernate.MappingException; /** Hibernate implementation of {@link org.grails.datastore.mapping.model.types.OneToOne} */ public class HibernateOneToOneProperty extends OneToOneWithMapping<PropertyConfig> @@ -32,6 +33,17 @@ public class HibernateOneToOneProperty extends OneToOneWithMapping<PropertyConfi super(entity, context, property); } + @Override + public void validateAssociation() { + HibernateToOneProperty.super.validateAssociation(); + if (isHasOne() && !isBidirectional()) { + throw new MappingException( + "hasOne property [" + + getName() + + "] is not bidirectional. Specify the other side of the relationship!"); + } + } + @Override public GrailsHibernatePersistentEntity getHibernateAssociatedEntity() { return (GrailsHibernatePersistentEntity) super.getAssociatedEntity(); diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernatePersistentProperty.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernatePersistentProperty.java index a83ea7e2dc..9a8e8378eb 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernatePersistentProperty.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernatePersistentProperty.java @@ -137,22 +137,6 @@ public interface HibernatePersistentProperty extends PersistentProperty<Property } default void validateAssociation() { - if (this instanceof Association && getUserType() != null) { - throw new MappingException( - "Cannot bind association property [" - + getName() - + "] of type [" - + getType() - + "] to a user type"); - } - if (this instanceof org.grails.datastore.mapping.model.types.OneToOne oneToOne) { - if (oneToOne.isHasOne() && !oneToOne.isBidirectional()) { - throw new MappingException( - "hasOne property [" - + getName() - + "] is not bidirectional. Specify the other side of the relationship!"); - } - } } default boolean isSerializableType() { diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernateToOneProperty.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernateToOneProperty.java index 8d9f7374bb..32ab2f5106 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernateToOneProperty.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernateToOneProperty.java @@ -19,9 +19,6 @@ package org.grails.orm.hibernate.cfg.domainbinding.hibernate; import org.grails.datastore.mapping.model.types.OneToOne; -import org.hibernate.MappingException; -import org.hibernate.mapping.ManyToOne; -import org.hibernate.mapping.Property; /** * Marker interface for Hibernate to-one associations ({@link HibernateManyToOneProperty} and @@ -29,25 +26,6 @@ import org.hibernate.mapping.Property; */ public interface HibernateToOneProperty extends HibernateAssociation { - default void validateAssociation() { - if (getUserType() != null) { - throw new MappingException( - "Cannot bind association property [" - + getName() - + "] of type [" - + getType() - + "] to a user type"); - } - if (this instanceof OneToOne oneToOne) { - if (oneToOne.isHasOne() && !oneToOne.isBidirectional()) { - throw new MappingException( - "hasOne property [" - + getName() - + "] is not bidirectional. Specify the other side of the relationship!"); - } - } - } - default boolean isHibernateOneToOne() { validateAssociation(); return this instanceof OneToOne association
