This is an automated email from the ASF dual-hosted git repository.

borinquenkid pushed a commit to branch 8.0.x-hibernate7-dev
in repository https://gitbox.apache.org/repos/asf/grails-core.git

commit 1b0e61cdf70104f7012c6974d3c0728c69983985
Author: Walter Duque de Estrada <[email protected]>
AuthorDate: Mon Mar 2 09:48:34 2026 -0600

    refactor isValidHibernateOneToOne and isValidHibernateManyToOne
---
 .../domainbinding/binder/GrailsPropertyBinder.java   |  2 +-
 .../cfg/domainbinding/binder/ManyToOneBinder.java    |  2 +-
 .../hibernate/HibernateManyToOneProperty.java        |  8 ++++++++
 .../hibernate/HibernateOneToOneProperty.java         | 10 ++++++++++
 .../hibernate/HibernatePersistentProperty.java       |  4 ++--
 .../hibernate/HibernateToOneProperty.java            | 13 -------------
 .../cfg/GrailsHibernatePersistentPropertySpec.groovy |  8 ++++----
 .../cfg/domainbinding/ComponentBinderSpec.groovy     | 20 ++++++++++----------
 .../domainbinding/GrailsPropertyBinderSpec.groovy    |  4 ++--
 .../cfg/domainbinding/ManyToOneBinderSpec.groovy     |  2 +-
 10 files changed, 39 insertions(+), 34 deletions(-)

diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/GrailsPropertyBinder.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/GrailsPropertyBinder.java
index 63e5c95542..4d949b2746 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/GrailsPropertyBinder.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/GrailsPropertyBinder.java
@@ -79,7 +79,7 @@ public class GrailsPropertyBinder {
       value =
           enumTypeBinder.bindEnumType(currentGrailsProp, 
currentGrailsProp.getType(), table, path);
     } else if (currentGrailsProp instanceof HibernateToOneProperty toOne) {
-      if (toOne.isHibernateOneToOne()) {
+      if (toOne.isValidHibernateOneToOne()) {
         value =
             oneToOneBinder.bindOneToOne(
                 (org.grails.datastore.mapping.model.types.OneToOne) toOne,
diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/ManyToOneBinder.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/ManyToOneBinder.java
index f0cde199da..9dd8fe4f9f 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/ManyToOneBinder.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/ManyToOneBinder.java
@@ -136,7 +136,7 @@ public class ManyToOneBinder {
       c.setUnique(config.isUnique());
     } else if (property.isBidirectional()
         && property.getHibernateInverseSide() instanceof 
HibernateToOneProperty inverseSide
-        && inverseSide.isHibernateOneToOne()) {
+        && inverseSide.isValidHibernateOneToOne()) {
       c.setUnique(true);
     }
   }
diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernateManyToOneProperty.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernateManyToOneProperty.java
index dacd497b16..97cfb69171 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernateManyToOneProperty.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernateManyToOneProperty.java
@@ -21,6 +21,7 @@ package org.grails.orm.hibernate.cfg.domainbinding.hibernate;
 import java.beans.PropertyDescriptor;
 import org.grails.datastore.mapping.model.MappingContext;
 import org.grails.datastore.mapping.model.PersistentEntity;
+import org.grails.datastore.mapping.model.types.OneToOne;
 import org.grails.datastore.mapping.model.types.mapping.ManyToOneWithMapping;
 import org.grails.orm.hibernate.cfg.PropertyConfig;
 
@@ -36,4 +37,11 @@ public class HibernateManyToOneProperty extends 
ManyToOneWithMapping<PropertyCon
   public GrailsHibernatePersistentEntity getHibernateAssociatedEntity() {
     return (GrailsHibernatePersistentEntity) super.getAssociatedEntity();
   }
+
+
+
+ public  boolean isValidHibernateManyToOne() {
+    validateAssociation();
+     return true;
+  }
 }
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 d0a70f13cb..2328fe1707 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
@@ -48,4 +48,14 @@ public class HibernateOneToOneProperty extends 
OneToOneWithMapping<PropertyConfi
   public GrailsHibernatePersistentEntity getHibernateAssociatedEntity() {
     return (GrailsHibernatePersistentEntity) super.getAssociatedEntity();
   }
+
+  public boolean isValidHibernateOneToOne() {
+    validateAssociation();
+    return canBindOneToOneWithSingleColumnAndForeignKey() || isHasOne() && 
isBidirectional() && getInverseSide() != null;
+  }
+
+  public boolean isValidHibernateManyToOne() {
+    validateAssociation();
+    return !isValidHibernateOneToOne();
+  }
 }
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 aadca583b7..8c114539e0 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
@@ -129,11 +129,11 @@ public interface HibernatePersistentProperty extends 
PersistentProperty<Property
     return Optional.ofNullable(getType()).map(Class::isEnum).orElse(false);
   }
 
-  default boolean isHibernateOneToOne() {
+  default boolean isValidHibernateOneToOne() {
     return false;
   }
 
-  default boolean isHibernateManyToOne() {
+  default boolean isValidHibernateManyToOne() {
     return false;
   }
 
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 27029a3e8b..f301a3ee95 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
@@ -26,18 +26,5 @@ import org.grails.datastore.mapping.model.types.OneToOne;
  */
 public interface HibernateToOneProperty extends HibernateAssociation {
 
-  default boolean isHibernateOneToOne() {
-    validateAssociation();
-    return this instanceof OneToOne association
-        && (association.canBindOneToOneWithSingleColumnAndForeignKey()
-            || (association.isHasOne()
-                && association.isBidirectional()
-                && association.getInverseSide() != null));
-  }
 
-  default boolean isHibernateManyToOne() {
-    validateAssociation();
-    return this instanceof org.grails.datastore.mapping.model.types.ManyToOne
-        || (this instanceof OneToOne && !isHibernateOneToOne());
-  }
 }
diff --git 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/GrailsHibernatePersistentPropertySpec.groovy
 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/GrailsHibernatePersistentPropertySpec.groovy
index ed651ee9bb..807269233a 100644
--- 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/GrailsHibernatePersistentPropertySpec.groovy
+++ 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/GrailsHibernatePersistentPropertySpec.groovy
@@ -107,10 +107,10 @@ class GrailsHibernatePersistentPropertySpec extends 
HibernateGormDatastoreSpec {
         HibernatePersistentProperty manyToOneProp = 
(HibernatePersistentProperty) entity.getPropertyByName("manyToOne")
 
         expect:
-        oneToOneProp.isHibernateOneToOne()
-        !oneToOneProp.isHibernateManyToOne()
-        !manyToOneProp.isHibernateOneToOne()
-        manyToOneProp.isHibernateManyToOne()
+        oneToOneProp.isValidHibernateOneToOne()
+        !oneToOneProp.isValidHibernateManyToOne()
+        !manyToOneProp.isValidHibernateOneToOne()
+        manyToOneProp.isValidHibernateManyToOne()
     }
 
 
diff --git 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ComponentBinderSpec.groovy
 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ComponentBinderSpec.groovy
index bd65b66b03..52d939a864 100644
--- 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ComponentBinderSpec.groovy
+++ 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ComponentBinderSpec.groovy
@@ -111,15 +111,15 @@ class ComponentBinderSpec extends 
HibernateGormDatastoreSpec {
         embeddedProp.getOwner() >> Mock(GrailsHibernatePersistentEntity) {
             getJavaClass() >> MyEntity
         }
-        embeddedProp.isHibernateOneToOne() >> false
-        embeddedProp.isHibernateManyToOne() >> false
+        embeddedProp.isValidHibernateOneToOne() >> false
+        embeddedProp.isValidHibernateManyToOne() >> false
 
         associatedEntity.getName() >> "Address"
         def prop1 = Mock(TestSimple)
         prop1.getName() >> "street"
         prop1.getType() >> String
-        prop1.isHibernateOneToOne() >> false
-        prop1.isHibernateManyToOne() >> false
+        prop1.isValidHibernateOneToOne() >> false
+        prop1.isValidHibernateManyToOne() >> false
         associatedEntity.getHibernateParentProperty(MyEntity) >> 
Optional.empty()
         associatedEntity.getHibernatePersistentProperties(MyEntity) >> [prop1]
 
@@ -152,8 +152,8 @@ class ComponentBinderSpec extends 
HibernateGormDatastoreSpec {
         embeddedProp.getOwner() >> Mock(GrailsHibernatePersistentEntity) {
             getJavaClass() >> MyEntity
         }
-        embeddedProp.isHibernateOneToOne() >> false
-        embeddedProp.isHibernateManyToOne() >> false
+        embeddedProp.isValidHibernateOneToOne() >> false
+        embeddedProp.isValidHibernateManyToOne() >> false
 
         associatedEntity.getName() >> "Address"
         def idProp = 
Mock(org.grails.orm.hibernate.cfg.domainbinding.hibernate.HibernateIdentityProperty)
@@ -163,8 +163,8 @@ class ComponentBinderSpec extends 
HibernateGormDatastoreSpec {
         def normalProp = Mock(TestSimple)
         normalProp.getName() >> "street"
         normalProp.getType() >> String
-        normalProp.isHibernateOneToOne() >> false
-        normalProp.isHibernateManyToOne() >> false
+        normalProp.isValidHibernateOneToOne() >> false
+        normalProp.isValidHibernateManyToOne() >> false
 
         associatedEntity.getIdentity() >> idProp
         associatedEntity.getHibernateParentProperty(MyEntity) >> 
Optional.empty()
@@ -198,8 +198,8 @@ class ComponentBinderSpec extends 
HibernateGormDatastoreSpec {
         embeddedProp.getOwner() >> Mock(GrailsHibernatePersistentEntity) {
             getJavaClass() >> MyEntity
         }
-        embeddedProp.isHibernateOneToOne() >> false
-        embeddedProp.isHibernateManyToOne() >> false
+        embeddedProp.isValidHibernateOneToOne() >> false
+        embeddedProp.isValidHibernateManyToOne() >> false
 
         associatedEntity.getName() >> "Address"
         def parentProp = Mock(TestSimple)
diff --git 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/GrailsPropertyBinderSpec.groovy
 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/GrailsPropertyBinderSpec.groovy
index 2989687ecb..e41830b042 100644
--- 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/GrailsPropertyBinderSpec.groovy
+++ 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/GrailsPropertyBinderSpec.groovy
@@ -259,8 +259,8 @@ class GrailsPropertyBinderSpec extends 
HibernateGormDatastoreSpec {
         def statusProp = Mock(TestSimpleEnum)
         setupProperty(statusProp, "status", new Mapping(), persistentEntity)
         statusProp.getType() >> java.util.concurrent.TimeUnit
-        statusProp.isHibernateOneToOne() >> false
-        statusProp.isHibernateManyToOne() >> false
+        statusProp.isValidHibernateOneToOne() >> false
+        statusProp.isValidHibernateManyToOne() >> false
 
         when:
         Value value = propertyBinder.bindProperty(rootClass, rootClass.table, 
EMPTY_PATH, null, statusProp, collector)
diff --git 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ManyToOneBinderSpec.groovy
 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ManyToOneBinderSpec.groovy
index 789054f2e7..6b368af0aa 100644
--- 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ManyToOneBinderSpec.groovy
+++ 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ManyToOneBinderSpec.groovy
@@ -128,7 +128,7 @@ class ManyToOneBinderSpec extends 
HibernateGormDatastoreSpec {
         propertyConfig.isUniqueWithinGroup() >> isUniqueWithinGroup
         property.isBidirectional() >> isBidirectional
         property.getHibernateInverseSide() >> inverseSide
-        inverseSide.isHibernateOneToOne() >> isInverseHasOne
+        inverseSide.isValidHibernateOneToOne() >> isInverseHasOne
 
         when:
         def result = binder.bindManyToOne(property, null, "/test")

Reply via email to