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 3a3e060672b93c4486448ab8cf9b74c60fae1410 Author: Walter Duque de Estrada <[email protected]> AuthorDate: Sat Mar 14 15:42:07 2026 -0500 hibernate 7: Refactoring signature of OneToOneBinder --- .../domainbinding/binder/GrailsPropertyBinder.java | 2 +- .../cfg/domainbinding/binder/OneToOneBinder.java | 5 ++-- .../cfg/domainbinding/OneToOneBinderSpec.groovy | 28 +++++++++++++++++----- 3 files changed, 26 insertions(+), 9 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 d957e82a49..10d06e3394 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 @@ -78,7 +78,7 @@ public class GrailsPropertyBinder { value = enumTypeBinder.bindEnumType(currentGrailsProp, currentGrailsProp.getType(), table, path); } else if (currentGrailsProp instanceof HibernateOneToOneProperty oneToOne && oneToOne.isValidHibernateOneToOne()) { - value = oneToOneBinder.bindOneToOne(oneToOne, persistentClass, table, path); + value = oneToOneBinder.bindOneToOne(oneToOne, path); } else if (currentGrailsProp instanceof HibernateOneToOneProperty oneToOne) { value = foreignKeyOneToOneBinder.bind(oneToOne, table, path); } else if (currentGrailsProp instanceof HibernateManyToOneProperty manyToOne) { diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/OneToOneBinder.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/OneToOneBinder.java index 3508ee82fe..cb75ac5a34 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/OneToOneBinder.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/OneToOneBinder.java @@ -21,6 +21,7 @@ package org.grails.orm.hibernate.cfg.domainbinding.binder; import org.hibernate.boot.spi.MetadataBuildingContext; import org.hibernate.mapping.OneToOne; import org.hibernate.mapping.PersistentClass; +import org.hibernate.mapping.Table; import org.grails.orm.hibernate.cfg.domainbinding.hibernate.HibernateOneToOneProperty; @@ -36,9 +37,9 @@ public class OneToOneBinder { public OneToOne bindOneToOne( final HibernateOneToOneProperty property, - PersistentClass owner, - org.hibernate.mapping.Table table, String path) { + Table table = property.getTable(); + PersistentClass owner = property.getHibernateOwner().getPersistentClass(); OneToOne oneToOne = new OneToOne(metadataBuildingContext, table, owner); oneToOne.setConstrained(property.isHibernateConstrained()); diff --git a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/OneToOneBinderSpec.groovy b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/OneToOneBinderSpec.groovy index f2759532ea..c248f0ed17 100644 --- a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/OneToOneBinderSpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/OneToOneBinderSpec.groovy @@ -27,13 +27,18 @@ class OneToOneBinderSpec extends HibernateGormDatastoreSpec { def "should bind one-to-one mapping with defaults"() { given: def metadataBuildingContext = getGrailsDomainBinder().getMetadataBuildingContext() + def table = new org.hibernate.mapping.Table("OWNER_TABLE") def ownerRoot = new RootClass(metadataBuildingContext) + ownerRoot.setTable(table) def gormOneToOne = Mock(TestOneToOne) - def owner = Mock(PersistentEntity) + def owner = Mock(org.grails.orm.hibernate.cfg.domainbinding.hibernate.GrailsHibernatePersistentEntity) gormOneToOne.getName() >> "myOneToOne" gormOneToOne.getOwner() >> owner + gormOneToOne.getHibernateOwner() >> owner + owner.getPersistentClass() >> ownerRoot + gormOneToOne.getTable() >> table gormOneToOne.isHibernateConstrained() >> false gormOneToOne.getHibernateForeignKeyDirection() >> ForeignKeyDirection.TO_PARENT gormOneToOne.getHibernateFetchMode() >> FetchMode.DEFAULT @@ -42,7 +47,7 @@ class OneToOneBinderSpec extends HibernateGormDatastoreSpec { gormOneToOne.needsSimpleValueBinding() >> false when: - def hibernateOneToOne = binder.bindOneToOne(gormOneToOne, ownerRoot, null, "") + def hibernateOneToOne = binder.bindOneToOne(gormOneToOne, "") then: hibernateOneToOne instanceof HibernateOneToOne @@ -58,13 +63,18 @@ class OneToOneBinderSpec extends HibernateGormDatastoreSpec { def "should bind constrained one-to-one mapping when other side is hasOne"() { given: def metadataBuildingContext = getGrailsDomainBinder().getMetadataBuildingContext() + def table = new org.hibernate.mapping.Table("OWNER_TABLE") def ownerRoot = new RootClass(metadataBuildingContext) + ownerRoot.setTable(table) def gormOneToOne = Mock(TestOneToOne) - def owner = Mock(PersistentEntity) + def owner = Mock(org.grails.orm.hibernate.cfg.domainbinding.hibernate.GrailsHibernatePersistentEntity) gormOneToOne.getName() >> "myOneToOne" gormOneToOne.getOwner() >> owner + gormOneToOne.getHibernateOwner() >> owner + owner.getPersistentClass() >> ownerRoot + gormOneToOne.getTable() >> table gormOneToOne.isHibernateConstrained() >> true gormOneToOne.getHibernateForeignKeyDirection() >> ForeignKeyDirection.FROM_PARENT gormOneToOne.getHibernateFetchMode() >> FetchMode.DEFAULT @@ -72,7 +82,7 @@ class OneToOneBinderSpec extends HibernateGormDatastoreSpec { gormOneToOne.needsSimpleValueBinding() >> true when: - def hibernateOneToOne = binder.bindOneToOne(gormOneToOne, ownerRoot, null, "") + def hibernateOneToOne = binder.bindOneToOne(gormOneToOne, "") then: hibernateOneToOne.isConstrained() @@ -83,12 +93,18 @@ class OneToOneBinderSpec extends HibernateGormDatastoreSpec { def "should respect fetch mode from mapping"() { given: def metadataBuildingContext = getGrailsDomainBinder().getMetadataBuildingContext() + def table = new org.hibernate.mapping.Table("OWNER_TABLE") def ownerRoot = new RootClass(metadataBuildingContext) + ownerRoot.setTable(table) def gormOneToOne = Mock(TestOneToOne) - def owner = Mock(PersistentEntity) + def owner = Mock(org.grails.orm.hibernate.cfg.domainbinding.hibernate.GrailsHibernatePersistentEntity) + gormOneToOne.getName() >> "myOneToOne" gormOneToOne.getOwner() >> owner + gormOneToOne.getHibernateOwner() >> owner + owner.getPersistentClass() >> ownerRoot + gormOneToOne.getTable() >> table gormOneToOne.isHibernateConstrained() >> false gormOneToOne.getHibernateForeignKeyDirection() >> ForeignKeyDirection.TO_PARENT gormOneToOne.getHibernateFetchMode() >> FetchMode.JOIN @@ -96,7 +112,7 @@ class OneToOneBinderSpec extends HibernateGormDatastoreSpec { gormOneToOne.needsSimpleValueBinding() >> true when: - def hibernateOneToOne = binder.bindOneToOne(gormOneToOne, ownerRoot, null, "") + def hibernateOneToOne = binder.bindOneToOne(gormOneToOne, "") then: hibernateOneToOne.getFetchMode() == FetchMode.JOIN
