Repository navigation
Hibernate 7: delete the classic domain binder - #16570
borinquenkid wants to merge 35 commits into
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
Four newly added fixture files violate enabled CodeNarc rules and would fail the repository style gate.
4 open findings
What changed in this PR
Removes Hibernate 7’s classic domain-binding stack, making native binding the sole implementation while retaining compatibility warnings and frozen-oracle coverage.
Changes:
- Deletes classic binders, second passes, collection types, and obsolete dual-mode tests.
- Extracts reusable native-binding infrastructure and preserves oracle fixtures.
- Updates configuration metadata, migration documentation, and tests for native-only behavior.
| File | Description |
|---|---|
.agents/skills/hibernate-developer/SKILL.md |
Updates native-binding guidance. |
gradle/hibernate7-test-config.gradle |
Removes classic-mode test wiring. |
grails-data-hibernate7/README.md |
Documents frozen oracle recording. |
grails-data-hibernate7/core/classic-only-specs.txt |
Removes classic-only test list. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/HibernateMappingContextConfiguration.groovy |
Makes native binding unconditional. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/ClassBinder.groovy |
Deletes classic class binder. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/ClassPropertiesBinder.groovy |
Deletes classic property binder. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/CollectionBinder.groovy |
Deletes classic collection binder. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/ColumnBinder.groovy |
Deletes classic column binder. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/ComponentBinder.groovy |
Deletes classic component binder. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/ComponentUpdater.groovy |
Deletes classic component updater. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/CompositeIdBinder.groovy |
Deletes classic composite-ID binder. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/CompositeIdentifierToManyToOneBinder.groovy |
Deletes classic composite-association binder. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/ConfiguredDiscriminatorBinder.groovy |
Deletes discriminator binder. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/DefaultDiscriminatorBinder.groovy |
Deletes default discriminator binder. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/DiscriminatorPropertyBinder.groovy |
Deletes discriminator-property binder. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/EnumTypeBinder.groovy |
Deletes enum binder. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/ForeignKeyOneToOneBinder.groovy |
Deletes one-to-one binder. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/GrailsDomainBinder.groovy |
Deletes classic binding entry point. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/GrailsPropertyBinder.groovy |
Deletes classic GORM property binder. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/IdentityBinder.groovy |
Deletes identity binder. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/JoinedSubClassBinder.groovy |
Deletes joined-subclass binder. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/ManyToOneBinder.groovy |
Deletes many-to-one binder. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/NaturalIdentifierBinder.groovy |
Deletes natural-ID binder. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/OneToOneBinder.groovy |
Deletes one-to-one binder. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/PropertyBinder.groovy |
Deletes classic Hibernate property binder. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/RootBinder.groovy |
Deletes root-class binder. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/RootPersistentClassCommonValuesBinder.groovy |
Deletes root-value binder. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SimpleIdBinder.groovy |
Deletes simple-ID binder. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SimpleValueBinder.groovy |
Deletes simple-value binder. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SimpleValueColumnBinder.groovy |
Deletes simple-column binder. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SingleTableSubclassBinder.groovy |
Deletes single-table binder. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SubClassBinder.groovy |
Deletes subclass binder. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SubclassMappingBinder.groovy |
Deletes subclass dispatcher. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/UnionSubclassBinder.groovy |
Deletes union-subclass binder. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/VersionBinder.groovy |
Deletes version binder. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/collectionType/CollectionHolder.groovy |
Deletes collection-type registry. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/collectionType/CollectionType.groovy |
Deletes classic collection abstraction. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/column/ColumnConfigToColumnBinder.groovy |
Moves reusable column binder. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/column/IndexBinder.groovy |
Moves reusable index binder. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/column/NumericColumnConstraintsBinder.groovy |
Moves numeric constraints binder. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/column/StringColumnConstraintsBinder.groovy |
Moves string constraints binder. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/GrailsHibernatePersistentEntity.groovy |
Relocates discriminator constant. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernateBasicEnumProperty.groovy |
Updates binder-neutral documentation. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernateEmbeddedCollectionProperty.groovy |
Updates binder-neutral documentation. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernateEnumProperty.groovy |
Updates enum-binding documentation. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernateMappingBuilder.groovy |
Removes classic-binder reference. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernateToManyProperty.groovy |
Uses relocated naming constants. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernateVersionProperty.groovy |
Updates version-binding documentation. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/jpa/ConstraintFacets.groovy |
Updates index documentation. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/jpa/GeneratedDomainClassBinder.groovy |
Adopts extracted native helpers. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/jpa/GormMappingContributor.groovy |
Adds native mapping contributor. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/jpa/GrailsDomainGenerator.groovy |
Updates moved helpers and native logic. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/jpa/ManyToManyOwnerValidator.groovy |
Moves ownership validator. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/jpa/PropertyAccessorName.groovy |
Extracts property-accessor selection. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/jpa/UniqueKeyFacets.groovy |
Updates classic behavior description. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/BasicCollectionElementBinder.groovy |
Deletes classic second pass. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/BidirectionalMapElementBinder.groovy |
Deletes classic second pass. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/BidirectionalOneToManyLinker.groovy |
Deletes classic linker. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/CollectionKeyBinder.groovy |
Deletes classic key binder. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/CollectionKeyColumnUpdater.groovy |
Deletes classic key updater. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/CollectionSecondPassBinder.groovy |
Deletes classic second pass. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/CollectionWithJoinTableBinder.groovy |
Deletes join-table binder. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/DependentKeyValueBinder.groovy |
Deletes dependent-key binder. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/HibernateToManyEntityOrderByBinder.groovy |
Deletes ordering binder. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/ListSecondPass.groovy |
Deletes list second pass. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/ListSecondPassBinder.groovy |
Deletes list binder. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/ManyToOneElementBinder.groovy |
Deletes element binder. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/MapSecondPass.groovy |
Deletes map second pass. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/MapSecondPassBinder.groovy |
Deletes map binder. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/PrimaryKeyValueCreator.groovy |
Deletes classic key creator. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/SetSecondPass.groovy |
Deletes set second pass. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/ToManyEntityMultiTenantFilterBinder.groovy |
Deletes classic tenant binder. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/UnidirectionalOneToManyBinder.groovy |
Deletes one-to-many binder. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/UnidirectionalOneToManyInverseValuesBinder.groovy |
Deletes inverse-values binder. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/DefaultColumnNameFetcher.groovy |
Exposes shared naming constants. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/GrailsPropertyResolver.groovy |
Deletes classic property resolver. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/MultiTenantFilterBinder.groovy |
Deletes classic tenant-filter binder. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/NamingStrategyWrapper.groovy |
Uses relocated naming constant. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/OrderByClauseBuilder.groovy |
Deletes classic ordering helper. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/PropertyFromValueCreator.groovy |
Deletes classic property creator. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/TableForManyCalculator.groovy |
Uses relocated naming constant. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/connections/HibernateConnectionSourceFactory.groovy |
Warns about removed setting. |
grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/connections/HibernateConnectionSourceSettings.groovy |
Removes binding switch. |
grails-data-hibernate7/core/src/main/resources/META-INF/additional-spring-configuration-metadata.json |
Deprecates removed setting. |
grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/HibernateGormDatastoreSpec.groovy |
Removes classic test helpers. |
grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/generated/GeneratedDomainClassesAnnotatedClassesSpec.groovy |
Removes mode setting. |
grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/generated/GeneratedDomainClassesBinderLeniencySpec.groovy |
Converts to native-only expectations. |
grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/generated/GeneratedDomainClassesBootSpec.groovy |
Tests native-only boot. |
grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/generated/GeneratedDomainClassesCacheRegionSpec.groovy |
Freezes classic expectations. |
grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/generated/GeneratedDomainClassesCircularManyToManySpec.groovy |
Freezes native behavior. |
grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/generated/GeneratedDomainClassesCollectionConstraintsSpec.groovy |
Replaces dual-mode comparisons. |
grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/generated/GeneratedDomainClassesCollectionIndexTypeSpec.groovy |
Replaces dual-mode comparisons. |
grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/generated/GeneratedDomainClassesCollectionSortSpec.groovy |
Uses literal classic ordering. |
grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/generated/GeneratedDomainClassesCollectionTypeSpec.groovy |
Converts collection tests to native-only. |
grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/generated/GeneratedDomainClassesCompositeCollectionSpec.groovy |
Converts composite tests to native-only. |
grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/generated/GeneratedDomainClassesCompositeIdSpec.groovy |
Uses standard registration. |
grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/generated/GeneratedDomainClassesContributorSpec.groovy |
Tests native contributor only. |
grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/generated/GeneratedDomainClassesConverterClassSpec.groovy |
Removes classic-mode comparison. |
grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/generated/GeneratedDomainClassesConverterSpec.groovy |
Uses standard registration. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernateManyToManyPropertySpec.groovy |
Uses mapping contributor context. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernateOneToManyPropertySpec.groovy |
Uses mapping contributor context. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernatePersistentEntitySpec.groovy |
Uses mapping contributor context. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernateToManyPropertySpec.groovy |
Removes classic collection assumptions. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/jpa/ClassicOracle.groovy |
Makes frozen/record modes native-only. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/jpa/ClassicOracleSpec.groovy |
Tests frozen-oracle lifecycle. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/jpa/ColumnOptionSpec.groovy |
Renames resolved behavior spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/jpa/GeneratedDomainClassesDdlDifferentialSpec.groovy |
Reads frozen DDL oracle. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/jpa/GrailsDomainBinderCompositeIdDefectSpec.groovy |
Removes classic-defect spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/jpa/GrailsDomainBinderEmbeddedCollectionDefectSpec.groovy |
Removes classic-defect spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/jpa/GrailsDomainGeneratorCompositeIdSpec.groovy |
Updates classic references. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/jpa/GrailsDomainGeneratorDifferentialSpec.groovy |
Compares against frozen oracle. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/jpa/GrailsDomainGeneratorSpec.groovy |
Removes classic-mode helpers. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/jpa/GrailsDomainGeneratorSupport.groovy |
Uses mapping contributor. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/jpa/GrailsDomainGeneratorTenantSpec.groovy |
Uses moved column helpers. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/jpa/GrailsDomainGeneratorUniqueGroupSpec.groovy |
Freezes classic unique-key facts. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/jpa/ManyToManyOwnershipSpec.groovy |
Converts defect test to behavior test. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/jpa/PropertyAccessorNameSpec.groovy |
Tests extracted accessor logic. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/jpa/UnidirectionalBasicCollectionsSpec.groovy |
Converts defect test to behavior test. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/jpa/UnidirectionalEntityCollectionsSpec.groovy |
Enables native behavior coverage. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/BasicCollectionElementBinderFixtures.groovy |
Preserves deleted-spec entities. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/BasicCollectionElementBinderSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/BasicCollectionKeyPersistenceSpec.groovy |
Updates regression documentation. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/BidirectionalMapElementBinderFixtures.groovy |
Preserves deleted-spec entities. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/BidirectionalMapElementBinderSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/BidirectionalOneToManyLinkerSpec.groovy |
Removes classic linker spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/CollectionKeyBinderFixtures.groovy |
Preserves deleted-spec entities. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/CollectionKeyBinderSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/CollectionKeyColumnUpdaterFixtures.groovy |
Preserves deleted-spec entities. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/CollectionKeyColumnUpdaterSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/CollectionSecondPassBinderFixtures.groovy |
Preserves deleted-spec entities. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/CollectionSecondPassBinderSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/CollectionWithJoinTableBinderFixtures.groovy |
Preserves deleted-spec entities. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/CollectionWithJoinTableBinderSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/DependentKeyValueBinderFixtures.groovy |
Preserves deleted-spec entities. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/DependentKeyValueBinderSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/HibernateToManyEntityOrderByBinderFixtures.groovy |
Preserves deleted-spec entities. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/HibernateToManyEntityOrderByBinderSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/ListSecondPassBinderFixtures.groovy |
Preserves deleted-spec entities. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/ListSecondPassBinderSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/ManyToOneElementBinderFixtures.groovy |
Preserves deleted-spec entities. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/ManyToOneElementBinderSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/MapSecondPassBinderFixtures.groovy |
Preserves deleted-spec entities. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/MapSecondPassBinderSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/PrimaryKeyValueCreatorSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/ToManyEntityMultiTenantFilterBinderFixtures.groovy |
Preserves deleted-spec entities. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/ToManyEntityMultiTenantFilterBinderSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/UnidirectionalOneToManyBinderFixtures.groovy |
Preserves deleted-spec entities. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/UnidirectionalOneToManyBinderSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/UnidirectionalOneToManyInverseValuesBinderFixtures.groovy |
Preserves deleted-spec entities. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/UnidirectionalOneToManyInverseValuesBinderSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/GrailsPropertyResolverSpec.groovy |
Removes classic utility spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/MultiTenantFilterBinderSpec.groovy |
Removes classic filter spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/MultiTenantFilterDefinitionBinderSpec.groovy |
Uses mapping contributor context. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/connections/HibernateConnectionSourceSettingsSpec.groovy |
Tests removed setting metadata. |
grails-data-hibernate7/core/src/test/resources/simplelogger.properties |
Removes deleted binder logger. |
grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/generated/GeneratedModeEnversSpec.groovy |
Converts Envers test to native-only. |
grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/generated/GeneratedModeSnapshotSpec.groovy |
Converts snapshot test to native-only. |
grails-data-hibernate7/docs/src/docs/asciidoc/advancedGORMFeatures/nativeDomainBinding.adoc |
Documents native-only binding. |
grails-data-hibernate7/docs/src/docs/asciidoc/configuration/configurationReference.adoc |
Marks old setting ignored. |
grails-data-hibernate7/docs/src/docs/asciidoc/gettingStarted/hibernateVersions.adoc |
Updates migration checklist. |
grails-doc/src/en/guide/upgrading/upgrading90x.adoc |
Updates Grails 9 upgrade guidance. |
grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/generated/GeneratedDomainClassesCustomCollectionTypeSpec.groovy |
Freezes native collection behavior. |
grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/generated/GeneratedDomainClassesDdlSpec.groovy |
Uses standard registration. |
grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/generated/GeneratedDomainClassesDiscriminatorSpec.groovy |
Replaces dual-mode assertions. |
grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/generated/GeneratedDomainClassesEmbeddedCollectionSpec.groovy |
Replaces dual-mode assertions. |
grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/generated/GeneratedDomainClassesEmbeddedIdWorkaroundSpec.groovy |
Freezes embedded-ID behavior. |
grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/generated/GeneratedDomainClassesExtraLazySpec.groovy |
Uses standard registration. |
grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/generated/GeneratedDomainClassesJoinColumnSpec.groovy |
Replaces dual-mode assertions. |
grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/generated/GeneratedDomainClassesLazyEmbeddedSpec.groovy |
Uses standard registration. |
grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/generated/GeneratedDomainClassesMapManyToManySpec.groovy |
Converts to native-only behavior. |
grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/generated/GeneratedDomainClassesMultiDataSourceSpec.groovy |
Removes per-mode data sources. |
grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/generated/GeneratedDomainClassesMultiTenancySpec.groovy |
Removes classic-mode parameterization. |
grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/generated/GeneratedDomainClassesNaturalIdSpec.groovy |
Converts natural-ID expectations. |
grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/generated/GeneratedDomainClassesQuerySpec.groovy |
Uses standard registration. |
grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/generated/GeneratedDomainClassesSerializableTypeSpec.groovy |
Converts serialization coverage. |
grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/generated/GeneratedDomainClassesSerializationSpec.groovy |
Removes mode comparison. |
grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/generated/GeneratedDomainClassesSharedEmbeddedCollectionSpec.groovy |
Freezes shared-embedding behavior. |
grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/generated/GeneratedDomainClassesSpec.groovy |
Uses standard registration. |
grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/generated/GeneratedDomainClassesTenancyModesSpec.groovy |
Converts tenancy coverage. |
grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/generated/GeneratedDomainClassesTenantTypeSpec.groovy |
Converts tenant-type coverage. |
grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/generated/GeneratedDomainClassesTypeMismatchSpec.groovy |
Converts mismatch coverage. |
grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/generated/GeneratedDomainClassesTypeParametersSpec.groovy |
Converts parameter coverage. |
grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/generated/GeneratedDomainClassesWidenedSpecs.groovy |
Removes duplicate native subclasses. |
grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/generated/GeneratedDomainClassesWriteFlagsSpec.groovy |
Freezes write-flag behavior. |
grails-data-hibernate7/core/src/test/groovy/org/apache/grails/data/hibernate7/core/GrailsDataHibernate7TckManager.groovy |
Removes classic-mode TCK switch. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/UserTypeMappingSpec.groovy |
Updates binder terminology. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/GeneratedDomainClassesSettingSpec.groovy |
Tests ignored-setting warning. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/GrailsHibernatePersistentPropertySpec.groovy |
Uses mapping contributor context. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/HibernateMappingContextConfigurationSpec.groovy |
Confirms switch removal. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/MappingSpec.groovy |
Removes classic binder helper. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/NaturalIdSpec.groovy |
Uses mapping contributor context. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/BasicValueCreatorSpec.groovy |
Uses mapping contributor context. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/CascadeBehaviorFetcherSpec.groovy |
Removes classic binder argument. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ClassBinderSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/CollectionBinderFixtures.groovy |
Preserves deleted-spec entities. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/CollectionBinderSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/CollectionForPropertyConfigBinderSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ColumnBinderFixtures.groovy |
Preserves deleted-spec entities. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ColumnBinderSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ColumnConfigToColumnBinderSpec.groovy |
Updates moved import. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ComponentBinderSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/CompositeIdBinderSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/CompositeIdentifierToManyToOneBinderSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/DefaultColumnNameFetcherSpec.groovy |
Updates literal expectations. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/EnumTypeBinderFixtures.groovy |
Preserves deleted-spec entities. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/EnumTypeBinderSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ForeignKeyOneToOneBinderSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/GrailsIdentityGeneratorSpec.groovy |
Uses mapping contributor context. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/GrailsPropertyBinderFixtures.groovy |
Preserves deleted-spec entities. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/GrailsPropertyBinderSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/IdentityBinderSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/IndexBinderSpec.groovy |
Updates moved import. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ManyToOneBinderSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ManyToOneValuesBinderSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/NamingStrategyWrapperSpec.groovy |
Uses relocated naming constant. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/NaturalIdentifierBinderSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/NumericColumnConstraintsBinderSpec.groovy |
Updates moved import. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/OneToOneBinderSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/OrderByClauseBuilderSpec.groovy |
Removes classic utility spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/PropertyBinderFixtures.groovy |
Preserves deleted-spec entities. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/PropertyBinderSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/PropertyFromValueCreatorSpec.groovy |
Removes classic utility spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/SimpleIdBinderSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/SimpleValueBinderSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/SimpleValueColumnBinderSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/SimpleValueColumnFetcherSpec.groovy |
Removes classic utility spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/StringColumnConstraintsBinderSpec.groovy |
Updates moved import. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/TableForManyCalculatorSpec.groovy |
Updates literal expectations. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/VersionBinderFixtures.groovy |
Preserves deleted-spec entities. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/VersionBinderSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/ClassPropertiesBinderSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/ComponentUpdaterFixtures.groovy |
Preserves deleted-spec entities. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/ComponentUpdaterSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/ConfiguredDiscriminatorBinderFixtures.groovy |
Preserves deleted-spec entities. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/ConfiguredDiscriminatorBinderSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/DefaultDiscriminatorBinderSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/DiscriminatorPropertyBinderFixtures.groovy |
Preserves deleted-spec entities. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/DiscriminatorPropertyBinderSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/JoinedSubClassBinderFixtures.groovy |
Preserves deleted-spec entities. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/JoinedSubClassBinderSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/ManyToManyWithoutOwnerSpec.groovy |
Removes classic-mode branch. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/RootBinderSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/RootPersistentClassCommonValuesBinderFixtures.groovy |
Preserves deleted-spec entities. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/RootPersistentClassCommonValuesBinderSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SingleTableSubclassBinderFixtures.groovy |
Preserves deleted-spec entities. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SingleTableSubclassBinderSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SubClassBinderSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SubclassMappingBinderFixtures.groovy |
Preserves deleted-spec entities. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SubclassMappingBinderSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/UnionSubclassBinderFixtures.groovy |
Preserves deleted-spec entities. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/UnionSubclassBinderSpec.groovy |
Removes classic unit spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/collectionType/BagCollectionTypeSpec.groovy |
Removes deleted-type spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/collectionType/CollectionHolderSpec.groovy |
Removes deleted-type spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/collectionType/ListCollectionTypeSpec.groovy |
Removes deleted-type spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/collectionType/MapCollectionTypeSpec.groovy |
Removes deleted-type spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/collectionType/SetCollectionTypeSpec.groovy |
Removes deleted-type spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/collectionType/SortedSetCollectionTypeSpec.groovy |
Removes deleted-type spec. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/generator/GrailsSequenceStyleGeneratorSpec.groovy |
Uses mapping contributor context. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/generator/GrailsTableGeneratorSpec.groovy |
Uses mapping contributor context. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernateBasicPropertySpec.groovy |
Reworks enum collection-table test. |
grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/HibernateEmbeddedCollectionPropertySpec.groovy |
Uses mapping contributor context. |
🧠 Review effort: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## 9.0.x-h7-native-default #16570 +/- ##
=================================================================
- Coverage 61.0675% 61.0544% -0.0132%
+ Complexity 27175 27161 -14
=================================================================
Files 2282 2282
Lines 113982 113982
Branches 20636 20636
=================================================================
- Hits 69606 69591 -15
- Misses 35171 35186 +15
Partials 9205 9205 🚀 New features to boost your workflow:
|
…ed against as literal expectations The classic domain binder is being deleted from 9.0.x. 33 specs booted a datastore through it next to a native one and asserted "the same as classic": the schema maps, the join tables, the cache regions, the stored rows. Their classic half is replaced by the values those comparisons held at eb82a95 (every equality passed in the last classic run of the suite; the values that only a classic boot could give, such as the H2 script of the embedded-identifier entity native binding refuses, were recorded from one more classic boot before the deletion). Whole-schema equalities are left to GeneratedDomainClassesDdlDifferentialSpec, which compares every one of these fixtures with the recorded classic schema. The five specs that could only run against a classic datastore (classic-only-specs.txt) either pinned classic defects with @PendingFeature, which native binding does not have (the pins are deleted or become plain behaviour specs: UnidirectionalEntityCollectionsSpec, UnidirectionalBasicCollectionsSpec, ColumnOptionSpec, ManyToManyOwnershipSpec), or read the Hibernate collection the classic binder left on the metamodel, which the generator specs now build by hand or no longer assert. The list is empty, so it goes. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…setting that selected the classic one is ignored with a warning hibernate.generatedDomainClasses selected the classic domain binder of Grails 8 when set to false. The classic binder is being deleted, so the switch goes first: HibernateMappingContextConfiguration always binds through the generated classes, HibernateConnectionSourceSettings has no such field and the test-only JVM property grails.hibernate.classicDomainBinding is gone with it. An application upgraded from Grails 8 that still sets the key, with either value or on a named data source, boots natively and HibernateConnectionSourceFactory logs once per data source that the setting is no longer used (GeneratedDomainClassesSettingSpec). The configuration metadata keeps the key as deprecated at level error, so an IDE flags it. The test infrastructure loses its two modes: the TCK manager's CLASSIC_MODE_PROPERTY and registerGeneratedDomainClasses, the Gradle property grails.test.classicDomainBinding and the classic-only exclusion, and GeneratedDomainClassesWidenedSpecs, whose 94 subclasses only ran their parents natively while classic was the default and now duplicated them. The two dbmigration specs that booted both bindings state the native snapshot, change log and Envers audit tables literally. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Native domain binding is the only binding since the previous commit, so the code that built Hibernate's boot model by hand goes: GrailsDomainBinder and the 31 binders of cfg/domainbinding/binder, the 20 second passes, the 7 collection types and the 5 helpers of util only they used, with their 60 unit specs. What the native path used of them is kept under names that say what it is: GormMappingContributor (jpa) is the AdditionalMappingContributor named GORM that GrailsDomainBinder was in native mode (it caches the mappings, resolves the naming strategy and hands the entities to GeneratedDomainClassBinder); PropertyAccessorName (jpa) is the accessor decision of PropertyBinder; the four column helpers the generator and the aligner share move to cfg/domainbinding/column; ManyToManyOwnerValidator moves next to the aligner; the naming constants live on DefaultColumnNameFetcher, the default discriminator column name on GrailsHibernatePersistentEntity, and the enum class parameter is IdentityEnumType's. The @entity fixtures the deleted unit specs declared stay in *Fixtures files of the same packages: the differential specs scan them and the frozen classic oracle records them, so both differentials keep their 799 groups, 0 mismatches and 85 known differences. Comments that described what the generator mirrors name the classic binders no more. HibernateGormDatastoreSpec offers getMappingContributor() in place of the binder and loses the classic re-bind of hibernateFirstPass(); HibernateToManyPropertySpec reads the metamodel without it. The hibernate-developer skill describes the native classes. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…recorded from a native boot The classic binder is gone, so the VERIFY and REFREEZE modes of ClassicOracle, which booted it, go too. The recorded files stay the oracle of the two differential specs (FROZEN, the default: 799 groups, 0 mismatches, 85 known differences, 0 unknown, 0 refused, as before). A contributor who adds an @entity fixture records it with -Pgrails.test.recordClassicOracle=true: RECORD boots only the scanned groups that have no record, natively, writes their facts at their place in the scan order with the header marked source: native, drops the records of groups no fixture makes up any more, and writes every other record back byte for byte, so the diff to review is additions. The DDL differential compares such a group with its own recorded schema, so a later change of native binding shows up as an unknown difference; the generator differential reports it instead of comparing facets only a classic boot could give (Hibernate's binder fills in a discriminator value, a cache strategy and a length on the version that the classic binder never stated). ClassicOracleSpec proves the three RECORD behaviours on a copy of the file and skips its completeness checks during a recording run, whose classpath still holds the old file. Exercised end to end with a throwaway fixture: 10 lines added, none removed, and the FROZEN rerun green with the record in place. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…sic binding of Grails 8 is gone The Native Domain Binding chapter no longer offers a fallback: it says what changed from the classic binding of Grails 8 (the unsupported mappings, which the classic binding could not use either, the changes in behaviour and in the schema, the Envers differences), and that the hibernate.generatedDomainClasses setting is ignored with a warning. The configuration reference and the Hibernate versions checklist say the same, and the 9.0.x upgrade notes drop the temporary fallback: an application whose mappings or database need work stays on Grails 8 until it is done. Both manuals built; the rendered pages were grepped. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…tive binding gives, as measured The literals that 955a1df wrote into GeneratedModeEnversSpec when it dropped the classic half of the spec were not captured from a run: that commit's verification never executed the spec, and the full module run of the deletion step failed three of its features. The values were therefore measured at eb82a95, the step 2 tip, in a throwaway worktree, native default and classic binding both, and are identical to HEAD's: - envers_book_aud: [class, genre, id, pages, rev, revtype, title, version] natively (classic had secret in addition, the @NotAudited field Envers read through the getter); class and genre are the discriminator and the subclass column of the single-table hierarchy EnversNovel extends EnversBook, which shares the audit table - the version written at the revisions of EnversVersioned and EnversCustomVersion: [[0, 0], [1, 1], [1, 2], [2, null]], null at the DEL revision because Envers stores no property data there unless store_data_at_delete is set, in both bindings - the columns of the other audit tables: [id, name, rev, revtype, version], [id, name, rev, revtype] and [id, lock_no, name, rev, revtype], the same in both bindings So the deletion of the classic binder changed no Envers behaviour; the spec now states the measured values. The dbmigration module passes (109 tests, 93 CLI tests). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
4b744e6 to
a9ed040
Compare
|
Rebuilt on #16572 (the Hibernate 7 modules converted to Groovy), as the maintainers asked to split the migration. The history of this branch was rewritten and force-pushed: please re-fetch and re-review from the new head rather than rebasing local work onto the old one. The content of the native-binding work is unchanged. |
…c-binder-v2 # Conflicts: # grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/ClassBinder.groovy # grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/ClassPropertiesBinder.groovy # grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/ComponentBinder.groovy # grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/CompositeIdBinder.groovy # grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/GrailsDomainBinder.groovy # grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/RootBinder.groovy # grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/RootPersistentClassCommonValuesBinder.groovy # grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SimpleValueBinder.groovy # grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SubclassMappingBinder.groovy # grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/collectionType/CollectionHolder.groovy # grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SingleTableSubclassBinderFixtures.groovy
…I spec GrailsDomainBinder, RootPersistentClassCommonValuesBinder and CollectionHolder no longer exist on this branch, so their pins go with them. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…n of four binder fixture files Copilot's review of the deletion PR: BasicCollectionElementBinderFixtures and CollectionWithJoinTableBinderFixtures imported org.hibernate.mapping.Set but name java.util.Set explicitly everywhere; MapSecondPassBinderFixtures had two consecutive blank lines and UnidirectionalOneToManyBinderFixtures a trailing semicolon, which CodeNarc's UnnecessaryImport-style, ConsecutiveBlankLines and UnnecessarySemicolon rules reject. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The classic binder this branch deletes is deleted here as well, with the Groovy conversion and review fixes that touched it; upgrading90x.adoc keeps the Hibernate 7 notes as section 2. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…e merge, drop a pending feature that passes The discriminator, unique group, composite foreign key and inverse hasMany fixtures are new to the frozen oracle; they are recorded with -Pgrails.test.recordClassicOracle=true and carry source: native (the diff is additions only). InverseHasManyCompositeIdentifierOrderSpec tracked a classic binder defect that native binding does not have, so it is no longer @PendingFeature. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ovement-phase3 # Conflicts: # grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/CollectionBinder.groovy # grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/ListSecondPass.groovy # grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/MapSecondPass.groovy # grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/SetSecondPass.groovy # grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/CollectionBinderSpec.groovy
|
@borinquenkid can you give history on this change and why it's required / should go into 9? We will likely release 9 at the end of Nov and this is a rather large change. Help me understand why we need this. |
The classic binder stays deleted, phase3's moved IndexBinder and idiomatic sources win the style-only conflicts, and upgrading90x.adoc keeps the phase3 wording with the renumbered section. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
BLOCKER before merge: this branch carries a temporary CI commit. This PR is stacked, and to avoid starting a full CI matrix on every push or rebase of the stack it carries one temporary commit, Condition for merging this PR: that commit must be reverted on this branch first, and CI must then run and be green. The absence of CI checks on this PR is deliberate and does not mean the code was tested. The full build runs on #16576 and #16572, the PRs that target 10.0.x. |
# Conflicts: # grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/CollectionKeyColumnUpdater.groovy # grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/CollectionKeyColumnUpdaterSpec.groovy
# Conflicts: # .agents/skills/hibernate-developer/SKILL.md # grails-data-hibernate7/core/classic-only-specs.txt # grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/GrailsDomainBinder.groovy # grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/GrailsPropertyBinder.groovy # grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/column/CompositeUserTypeBinder.groovy # grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/jpa/GrailsDomainGenerator.groovy # grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/generated/GeneratedDomainClassesSerializationSpec.groovy # grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/GrailsPropertyBinderSpec.groovy # grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/jpa/UnidirectionalEntityCollectionsSpec.groovy # grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/ListSecondPassBinderSpec.groovy # grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/MapSecondPassBinderSpec.groovy
…ic binder, follow the assignability check of a deserialized proxy The oracle recorded the fixtures of GrailsPropertyBinderSpec and the collection-key updater spec, which this branch deleted with the classic binder; RECORD mode drops them. A deserialized proxy is a plain instance of the real class, which the serialization spec now states as assignability rather than as the direct superclass.
# Conflicts: # grails-data-hibernate7/core/classic-only-specs.txt # grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/CollectionKeyColumnUpdater.groovy # grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/CollectionKeyColumnUpdaterSpec.groovy # grails-data-hibernate7/core/src/test/resources/classic-oracle/ddl-differential.txt # grails-data-hibernate7/core/src/test/resources/classic-oracle/generator-differential.txt
MuhAccount and MuhNote join the MuhItem group, now keyed MuhAccount.
# Conflicts: # .agents/skills/hibernate-developer/SKILL.md # grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/jpa/GrailsDomainGeneratorDifferentialSpec.groovy # grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/jpa/GrailsDomainGeneratorSpec.groovy
# Conflicts: # grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/CollectionBinder.groovy # grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/ToManyEntityMultiTenantFilterBinder.groovy # grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ManyToOneValuesBinderSpec.groovy # grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SingleTableSubclassBinderFixtures.groovy # grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/ToManyEntityMultiTenantFilterBinderSpec.groovy
…ver the 8.x warning spec The 10.0.x merge brought ManyToManyWithoutOwnerWarningSpec, which expects the Grails 8 behaviour: a bidirectional many-to-many with no belongsTo on either side binds, and the binder logs one warning. On this branch such a mapping refuses to start with a MappingException that names both sides (ManyToManyOwnerValidator, documented in manyToMany.adoc and hibernateVersions.adoc, covered by ManyToManyWithoutOwnerSpec including the circular and the Map-sided cases), so the warning spec cannot pass and its cases are already covered. The spec goes; its Warn* fixtures went with it, so the classic oracle no longer expects them. The oracle also drops the record of SingleTableSubClassDefault, whose classic fixture left with the classic binder in the same merge.
…e tenant in the native binding The native binding gave the tenant filter only to a one-to-many of a multi-tenant entity. The classic binder of 8.0.x (#16515) filters every collection of a multi-tenant entity, a many-to-many too, and loads a collection mapped fetch: 'join' eagerly with a select of its own, because Hibernate does not apply the filter to a collection it fetches by join with an instance loaded by id. The generator now does the same: the tenant condition goes on any to-many whose target is multi-tenant, and a join-fetched one becomes an eager @fetch(SELECT). On a collection with a join table Hibernate's annotation binder turns @filter into the many-to-many filter, which is what the classic binder bound. GrailsDomainGeneratorTenantSpec covers the many-to-many, the one-to-many, the eager select and an unfiltered collection, on the generated fields and in the metadata Hibernate reads from them. The classic oracle records the new fixtures, and the frozen fact of CMTBManyToManyOwner.items now states the many-to-many filter the 8.0.x classic binder binds for it.
…in the native binding Mirror of #16720 (fix/enum-unique-group-multicolumn-8.0.x, #16713) on the native-binding branch, ahead of its merge-up. CreateKeyForProps, which the generator's constraint facets still use, adds each configured column of a unique-group member to the key instead of asking the single-column accessor, which threw for a to-one association mapped to more than one column; a member without explicit columns keeps the fallback. EnumUniqueGroupAssociationSpec from that pull request runs against the native binding here, and the classic oracle records its fixtures.
🔎 No tests executed 🔎🏷️ Commit: cd301cb Learn more about TestLens at testlens.app/docs. |

Last PR of the native domain binding stack. 6 commits, 262 files, +3,488 / −18,648.
What
The classic
GrailsDomainBinderand everything that existed only to assemble Hibernate's boot model by hand are deleted. Native binding is the only binding of GORM for Hibernate 7.Changes
grails-data-hibernate7/core):GrailsDomainBinder, thebinder,secondpassandcollectionTypepackages and their utilities, thehibernate.generatedDomainClassesswitch and the classic code path inHibernateMappingContextConfiguration,HibernateDatastoreand the test harness.cfg/domainbinding/column/),ManyToManyOwnerValidator(jpa/); the one piece ofGrailsDomainBinderthe native path needed is extracted asGormMappingContributor(theAdditionalMappingContributor). Thehibernatemetamodel package is untouched.hibernate.generatedDomainClasses, with either value, boots natively and logs one WARN naming the setting; the configuration metadata keeps the key as deprecated at levelerrorso IDEs flag it.@Entityfixtures preserved so the oracle keys do not change; the 94 duplicate "widened" subclasses that only existed to run their parents natively are gone (test count 4,597 → 4,104 for that reason).-Pgrails.test.recordClassicOracle=true; native-recorded sections are reported, not compared, by the generator differential (there is no classic fact to compare them with). Documented in the module README.Verification
At the tip, uncached: core 4,104 tests / 0 failures; generator differential 0 mismatches (1,169 entities, 3,381 properties); DDL differential 85 known, 0 unknown, 0 refused; dbmigration-core 40, dbmigration 109 + 93 CLI, plugin 39 + 2, spring-boot 2; 22 example apps' unit tests and 19 integration suites green except
app1's 21 pre-existing GSP failures (same set and counts as before the stack);codeStyleclean;rat's 69 unapproved files are the ones already present at the base, in modules this stack never touched.Known follow-up
An inverse
hasManyon an entity whose composite identifier is not declared in name order loads empty on8.0.xas well (#16565); native binding is not affected by the classic linker, but the issue is tracked separately.Merge of the Java-to-Groovy review follow-up (#16572)
Merged up from #16569 (which contains #16568, the reviewed #16572 and
9.0.x, including upstream fixes #16533 and #16539). Conflicts were resolved in favour of native binding as the only binding: the oracle files are taken from #16569, and the doc and spec changes are carried into the renamed specs (for exampleColumnOptionSpec).Verified at the tip: core 4,250 tests (51 skipped), plugin 39, dbmigration-core 41, 0 failures.
🤖 Generated with Claude Code