[OPENJPA-3017] Map a collection whose converter takes the collection itself (#220)
* [OPENJPA-3017] Map a collection whose converter takes the collection itself
A converter declared AttributeConverter<List<X>, Y> converts the attribute
as a whole, so the field is basic and maps to one column. It was instead
treated as having no persistence strategy, left out of the mapping, and its
contents were lost without an error.
* [OPENJPA-3017] Use pattern matching for instanceof in resolveConverterTypeArgument
* [OPENJPA-3017] Put a mapping file column of a basic collection on the attribute
A <column> inside <basic> on a collection or map was assigned to the
element mapping unless the value was serialized. A collection converted
as a whole then failed to map with "this mapping cannot have columns in
this context". A basic attribute is one value with one column, so its
column now belongs to the attribute. The converter cannot decide this
here, since an @Convert annotation is not parsed yet.
* [OPENJPA-3017] Fetch a collection converted as a whole eagerly by default
A converted attribute is basic, and a basic attribute is eager unless it
is declared lazy. A collection or map converted as a whole fell back to the
lazy default of collections, so it was not loaded before detach.
* [OPENJPA-3017] Note converted collections in the migration considerations
14 files changed