The GitHub Actions job "Coverage" on grails-core.git/fix/16688-h7-composite-user-type has failed. Run started by GitHub user jdaugherty (triggered by jdaugherty).
Head commit for run: 68a5522d0a3715b4f4c44e41d8c5bb84142d2700 / James Daugherty <[email protected]> Bind a CompositeUserType property as a component under Hibernate 7 Hibernate 7 resolves the type name of a BasicValue through TypeDefinition, which accepts a BasicType or a UserType only, so a property mapped with `type: MonetaryAmountType` where that class implements CompositeUserType failed the SessionFactory build with "Named type [...] did not implement BasicType nor UserType". Hibernate binds a @CompositeType as a Component whose type name is the user type, with one property per attribute of the embeddable() class in alphabetical order, read through getPropertyValue(value, index) and rebuilt through instantiate(ValueAccess). GrailsPropertyBinder now routes a property whose type, or the user-type registered for its class, implements CompositeUserType to the new CompositeUserTypeBinder, which builds that Component: the columns of the property mapping are assigned to the attributes in alphabetical order and bound through ColumnBinder, an attribute without a column is named after the property and the attribute, and more columns than attributes is a MappingException. typeParams are logged as ignored, since Hibernate instantiates a composite user type itself. Documents composite user types in the GORM guide, the `type` mapping reference and the Grails 8 upgrade guide. Fixes #16688 Report URL: https://github.com/apache/grails-core/actions/runs/39475969766 With regards, GitHub Actions via GitBox
