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

Reply via email to