The GitHub Actions job "CI" on grails-core.git/fix/16688-h7-composite-user-type 
has succeeded.
Run started by GitHub user jdaugherty (triggered by jdaugherty).

Head commit for run:
fd71dcabc7bc6c77f31ed7697d217bb11f73e72b / James Daugherty 
<[email protected]>
Define each composite user type column from its attribute, resolve the user 
type once and bind an enum mapped with one as a component

A column of a composite user type property is one of several, so 
ColumnBinder.bindColumnWithoutUniqueness now takes the type of its attribute 
and defines the column from its own configuration: a numeric attribute gets the 
scale and precision of its column entry, or the default precision of the 
dialect, and the constraints of the property, which describe the whole value, 
are no longer read through PropertyConfig's single-column accessors (a 
CompositeUserType<BigDecimal> with two columns threw "Cannot treat multi-column 
property as a single-column property" unless every column set a scale). 
NumericColumnConstraintsBinder accepts a null property config for that case.

The user type is now instantiated in one place, 
CompositeUserTypeColumns.userTypeOf, which is CDI-aware when it has the 
MetadataBuildingContext, and the context is passed to it from 
GrailsDomainBinder, SimpleValueBinder and CompositeUserTypeBinder through new 
ColumnNameForPropertyAndPathFetcher and ColumnBinder constructors. A uniqueness 
group that names a composite property built by a bean container no longer 
requires a default constructor.

GrailsPropertyBinder checks for a composite user type before the enum branch, 
so an enum property whose type names one is bound as a component rather than 
handed to EnumTypeBinder, which built a BasicValue with the composite type name.

Regressions in CompositeUserTypeMappingSpec: a BigDecimal split into scale and 
unscaled value with configured and default columns, an enum persisted as its 
code and rank, a user type without a default constructor resolved through a 
hibernate.resource.beans.container for its property and for the group that 
names it, and the startup error without a container. Unit coverage in 
ColumnBinderSpec, NumericColumnConstraintsBinderSpec, 
CompositeUserTypeColumnsSpec, ColumnNameForPropertyAndPathFetcherSpec and 
GrailsPropertyBinderSpec. The guide states the per-column constraints, the enum 
case and the bean container.

Report URL: https://github.com/apache/grails-core/actions/runs/39974793726

With regards,
GitHub Actions via GitBox

Reply via email to