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

Reply via email to