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 422cb59b82b56ae84c82174aa07c668604c349ac Author: Walter B Duque de Estrada <[email protected]> AuthorDate: Mon Jan 26 15:14:56 2026 -0600 Fix(grails-data-hibernate7): Rename entities in DirtyCheckingSpecHibernate7 for uniqueness and update TCK tests. This commit addresses the issue where test entities in DirtyCheckingSpecHibernate7 could clash with other TCK tests. Changes include: - Renamed TestBook to DirtyCheckingTestBookHibernate7 and TestAuthor to DirtyCheckingTestAuthorHibernate7 in DirtyCheckingSpecHibernate7.groovy. - Removed unused imports GrailsDataCoreTckManager and GrailsDataTckSpec from DirtyCheckingSpecHibernate7.groovy. - Added @IgnoreIf annotation to grails-datamapping-core-test/src/test/groovy/org/grails/datastore/gorm/DirtyCheckingSpec.groovy for Hibernate 7 compatibility. - Staged updates to grails-data-hibernate7/core/HIBERNATE7-TESTS.csv to reflect current test statuses. --- grails-data-hibernate7/core/HIBERNATE7-TESTS.csv | 21 +++--------- .../DirtyCheckingSpecHibernate7.groovy | 38 +++++++++++++++++----- .../grails/datastore/gorm/DirtyCheckingSpec.groovy | 2 ++ 3 files changed, 36 insertions(+), 25 deletions(-) diff --git a/grails-data-hibernate7/core/HIBERNATE7-TESTS.csv b/grails-data-hibernate7/core/HIBERNATE7-TESTS.csv index 9809a52a0f..903b7944ba 100644 --- a/grails-data-hibernate7/core/HIBERNATE7-TESTS.csv +++ b/grails-data-hibernate7/core/HIBERNATE7-TESTS.csv @@ -1,23 +1,10 @@ Test File , Status , Notes -`src/test/groovy/grails/gorm/specs/UniqueWithMultipleDataSourcesSpec.groovy` , PASSED , -`src/test/groovy/grails/gorm/specs/dirtychecking/HibernateDirtyCheckingSpec.groovy` , PASSED , -`src/test/groovy/grails/gorm/specs/perf/JoinPerfSpec.groovy` , FAILED , -`src/test/groovy/grails/gorm/specs/uuid/UuidInsertSpec.groovy` , FAILED , -`src/test/groovy/grails/gorm/specs/validation/SaveWithInvalidEntitySpec.groovy` , PASSED , -`TCK: org.apache.grails.data.testing.tck.tests.AttachMethodSpec` , FAILED , +`src/test/groovy/grails/gorm/specs/perf/JoinPerfSpec.groovy` , FAILED , +`TCK: org.apache.grails.data.testing.tck.tests.AttachMethodSpec` , FAILED , `TCK: org.apache.grails.data.testing.tck.tests.BuiltinUniqueConstraintWorksWithTargetProxiesConstraintsSpec` , FAILED , `TCK: org.apache.grails.data.testing.tck.tests.DirtyCheckingSpec` , FAILED , `TCK: org.apache.grails.data.testing.tck.tests.GroovyProxySpec` , SKIPPED , Requires fix in GORM Hibernate 7 implementation for proxy initialization (isInitialized method) for native proxies. `TCK: org.apache.grails.data.testing.tck.tests.QueryEventsSpec` , FAILED , `TCK: org.apache.grails.data.testing.tck.tests.SessionCreationEventSpec` , FAILED , -`TCK: org.apache.grails.data.testing.tck.tests.UpdateWithProxyPresentSpec` , FAILED , Fails when hibernate7.gorm.suite=false -`TCK: org.apache.grails.data.testing.tck.tests.NamedQuerySpec` , FAILED , Fails when hibernate7.gorm.suite=false -`src/test/groovy/org/grails/orm/hibernate/HibernateGormInstanceApiSpec.groovy` , PASSED , -`src/test/groovy/org/grails/orm/hibernate/HibernateGormStaticApiSpec.groovy` , PASSED , -`src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/SequenceGeneratorsSpec.groovy` , PASSED , -`src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/IncrementGeneratorSpec.groovy` , FAILED , -`src/test/groovy/org/grails/orm/hibernate/connections/MultipleDataSourceConnectionsSpec.groovy` , PASSED , -`src/test/groovy/org/grails/orm/hibernate/connections/MultipleDataSourcesWithCachingSpec.groovy` , PASSED , -`src/test/groovy/org/grails/orm/hibernate/connections/MultipleDataSourcesWithEventsSpec.groovy` , PASSED , -`src/test/groovy/org/grails/orm/hibernate/connections/SchemaMultiTenantSpec.groovy` , PASSED , -`src/test/groovy/org/grails/orm/hibernate/connections/SingleTenantSpec.groovy` , PASSED , \ No newline at end of file +`TCK: org.apache.grails.data.testing.tck.tests.UpdateWithProxyPresentSpec` , NOT SUPPORTED , Not supported in Hibernate 7. +`TCK: org.apache.grails.data.testing.tck.tests.NamedQuerySpec` , NOT SUPPORTED , Not supported in Hibernate 7. diff --git a/grails-datamapping-core-test/src/test/groovy/org/grails/datastore/gorm/DirtyCheckingSpec.groovy b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/dirtychecking/DirtyCheckingSpecHibernate7.groovy similarity index 70% copy from grails-datamapping-core-test/src/test/groovy/org/grails/datastore/gorm/DirtyCheckingSpec.groovy copy to grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/dirtychecking/DirtyCheckingSpecHibernate7.groovy index 3f35f32836..465c211c48 100644 --- a/grails-datamapping-core-test/src/test/groovy/org/grails/datastore/gorm/DirtyCheckingSpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/dirtychecking/DirtyCheckingSpecHibernate7.groovy @@ -17,18 +17,17 @@ * under the License. */ import grails.gorm.annotation.Entity -import org.apache.grails.data.simple.core.GrailsDataCoreTckManager -import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec +import grails.gorm.specs.HibernateGormDatastoreSpec -class DirtyCheckingSpec extends GrailsDataTckSpec<GrailsDataCoreTckManager> { +class DirtyCheckingSpecHibernate7 extends HibernateGormDatastoreSpec { void setupSpec() { - manager.addAllDomainClasses([TestBook]) + manager.addAllDomainClasses([DirtyCheckingTestBookHibernate7]) } void "When marking whole class dirty, then derived and transient properties are still not dirty"() { when: - TestBook book = new TestBook() + DirtyCheckingTestBookHibernate7 book = new DirtyCheckingTestBookHibernate7() book.title = "Test" and: "mark class as not dirty - to clear previous dirty tracking" book.trackChanges() @@ -54,7 +53,7 @@ class DirtyCheckingSpec extends GrailsDataTckSpec<GrailsDataCoreTckManager> { void "Test that dirty tracking doesn't apply on Entity's transient properties"() { when: - TestBook book = new TestBook() + DirtyCheckingTestBookHibernate7 book = new DirtyCheckingTestBookHibernate7() book.title = "Test" and: "mark class as not dirty, clear previous dirty tracking" book.trackChanges() @@ -74,7 +73,7 @@ class DirtyCheckingSpec extends GrailsDataTckSpec<GrailsDataCoreTckManager> { } @Entity -class TestBook implements Serializable { +class DirtyCheckingTestBookHibernate7 implements Serializable { Long id String title @@ -88,4 +87,27 @@ class TestBook implements Serializable { } static transients = ['transientProperty'] -} \ No newline at end of file +} + +@Entity +class DirtyCheckingTestAuthorHibernate7 implements Serializable { + Long id + String name + Integer age + + @Override + boolean equals(Object o) { + if (this.is(o)) return true + if (o == null || getClass() != o.class) return false + + DirtyCheckingTestAuthorHibernate7 that = (DirtyCheckingTestAuthorHibernate7) o + + if (id != null ? !id.equals(that.id) : that.id != null) return false + return true + } + + @Override + int hashCode() { + return id != null ? id.hashCode() : 0 + } +} diff --git a/grails-datamapping-core-test/src/test/groovy/org/grails/datastore/gorm/DirtyCheckingSpec.groovy b/grails-datamapping-core-test/src/test/groovy/org/grails/datastore/gorm/DirtyCheckingSpec.groovy index 3f35f32836..e4263192cf 100644 --- a/grails-datamapping-core-test/src/test/groovy/org/grails/datastore/gorm/DirtyCheckingSpec.groovy +++ b/grails-datamapping-core-test/src/test/groovy/org/grails/datastore/gorm/DirtyCheckingSpec.groovy @@ -19,7 +19,9 @@ import grails.gorm.annotation.Entity import org.apache.grails.data.simple.core.GrailsDataCoreTckManager import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec +import grails.testing.spock.IgnoreIf +@IgnoreIf({ System.getProperty("hibernate7.gorm.suite") == "true" }) class DirtyCheckingSpec extends GrailsDataTckSpec<GrailsDataCoreTckManager> { void setupSpec() {
