- added log message when this condition occurs
- tried adding a `LoggerInspectionRule` based assertion to the test, but found that that rule is unfortunately very dependent on the message actually being logged
HHH-14951 - Add @EmbeddableRepresentationStrategy
Prep work for `@EmbeddableRepresentationStrategy` - mostly move things from spi package to api, generally all marked `@Incubating`
HHH-14950 - Support mapping of embeddables with no setters (assuming a custom instantiator or repo-strategy is used)
Tests illustrating that HHH-14950 does indeed happen
- shared `#finishInitialization` handling for `VirtualIdEmbeddable` and `IdClassEmbeddable`
note: was not yet able to get that working with `EmbeddableMappingType`
- clean up ComponentType, esp wrt its use of ComponentTuplizer
Still need to
- integrate embedded forms. `VirtualIdEmbeddable` does not really need it as it can use the id-mapping itself as the embedded form. But `IdClassEmbedded` should really be integrated
- integrate `VirtualKeyEmbeddable` and `VirtualKeyEmbedded` for use as inverse composite fks
- ability to use the containing composite owner as the parent of a composite (legacy behavior is to always use the "first" entity
- Clean up Component Type, removing as many calls to its tuplizer as possible atm
- Clean up ManagedMappingType, EntityPersister, etc - mainly work around getting and setting value(s)
Still need to
- integrate embedded forms. `VirtualIdEmbeddable` does not really need it as it can use the id-mapping itself as the embedded form. But `IdClassEmbedded` should really be integrated
- integrate `VirtualKeyEmbeddable` and `VirtualKeyEmbedded` for use as inverse composite fks
- share `#finishInit` handling for `EmbeddableMappingType`, `VirtualIdEmbeddable` and `IdClassEmbeddable`
- ability to use the containing composite owner as the parent of a composite (legacy behavior is to always use the "first" entity
- clean up ComponentType, esp wrt its use of ComponentTuplizer
- Clean up Component Type, removing as many calls to its tuplizer as possible atm
- Clean up ManagedMappingType, EntityPersister, etc - mainly work around getting and setting value(s)
Still need to
- integrate embedded forms. `VirtualIdEmbeddable` does not really need it as it can use the id-mapping itself as the embedded form. But `IdClassEmbedded` should really be integrated
- integrate `VirtualKeyEmbeddable` and `VirtualKeyEmbedded` for use as inverse composite fks
- share `#finishInit` handling for `EmbeddableMappingType`, `VirtualIdEmbeddable` and `IdClassEmbeddable`
- ability to use the containing composite owner as the parent of a composite (legacy behavior is to always use the "first" entity
- clean up ComponentType, esp wrt its use of ComponentTuplizer
Move all component instantiations to use the new mapping model EmbeddableInstantiator
Still need to
- integrate embedded forms. `VirtualIdEmbeddable` does not really need it as it can use the id-mapping itself as the embedded form. But `IdClassEmbedded` should really be integrated
- integrate `VirtualKeyEmbeddable` and `VirtualKeyEmbedded` for use as inverse composite fks
- share `#finishInit` handling for `EmbeddableMappingType`, `VirtualIdEmbeddable` and `IdClassEmbeddable`
- ability to use the containing composite owner as the parent of a composite (legacy behavior is to always use the "first" entity
- clean up ComponentType, esp wrt its use of ComponentTuplizer
EmbeddableInitializer fully uses EmbeddableInstantiator and value injection
Still need to
- integrate EmbeddableInstantiator work (ComponentType/ComponentTuplizer)
- integrate embedded forms. `VirtualIdEmbeddable` does not really need it as it can use the id-mapping itself as the embedded form. But `IdClassEmbedded` should really be integrated
- integrate `VirtualKeyEmbeddable` and `VirtualKeyEmbedded` for use as inverse composite fks
- share `#finishInit` handling for `EmbeddableMappingType`, `VirtualIdEmbeddable` and `IdClassEmbeddable`
- ability to use the containing composite owner as the parent of a composite (legacy behavior is to always use the "first" entity
EmbeddableInitializer fully uses EmbeddableInstantiator and value injection
Still need to
- integrate EmbeddableInstantiator work (ComponentType/ComponentTuplizer)
- integrate embedded forms. `VirtualIdEmbeddable` does not really need it as it can use the id-mapping itself as the embedded form. But `IdClassEmbedded` should really be integrated
- integrate `VirtualKeyEmbeddable` and `VirtualKeyEmbedded` for use as inverse composite fks
- share `#finishInit` handling for `EmbeddableMappingType`, `VirtualIdEmbeddable` and `IdClassEmbeddable`
- ability to use the containing composite owner as the parent of a composite (legacy behavior is to always use the "first" entity
Prep work for EmbeddableInstantiator - initializer
Still need to
- integrate EmbeddableInstantiator work
- integrate embedded forms. `VirtualIdEmbeddable` does not really need it as it can use the id-mapping itself as the embedded form. But `IdClassEmbedded` should really be integrated
- integrate `VirtualKeyEmbeddable` and `VirtualKeyEmbedded` for use as inverse composite fks
- share `#finishInit` handling for `EmbeddableMappingType`, `VirtualIdEmbeddable` and `IdClassEmbeddable`
- ability to use the containing composite owner as the parent of a composite (legacy behavior is to always use the "first" entity
Prep work for EmbeddableInstantiator - initializer
Still need to
- integrate EmbeddableInstantiator work
- integrate embedded forms. `VirtualIdEmbeddable` does not really need it as it can use the id-mapping itself as the embedded form. But `IdClassEmbedded` should really be integrated
- integrate `VirtualKeyEmbeddable` and `VirtualKeyEmbedded` for use as inverse composite fks
- share `#finishInit` handling for `EmbeddableMappingType`, `VirtualIdEmbeddable` and `IdClassEmbeddable`
- ability to use the containing composite owner as the parent of a composite (legacy behavior is to always use the "first" entity
Prep work for EmbeddableInstantiator - initializer
Still need to
- integrate EmbeddableInstantiator work
- integrate embedded forms. `VirtualIdEmbeddable` does not really need it as it can use the id-mapping itself as the embedded form. But `IdClassEmbedded` should really be integrated
- integrate `VirtualKeyEmbeddable` and `VirtualKeyEmbedded` for use as inverse composite fks
- share `#finishInit` handling for `EmbeddableMappingType`, `VirtualIdEmbeddable` and `IdClassEmbeddable`
- ability to use the containing composite owner as the parent of a composite (legacy behavior is to always use the "first" entity
Prep work for EmbeddableInstantiator - initializer
Still need to
- integrate EmbeddableInstantiator work
- integrate embedded forms. `VirtualIdEmbeddable` does not really need it as it can use the id-mapping itself as the embedded form. But `IdClassEmbedded` should really be integrated
- integrate `VirtualKeyEmbeddable` and `VirtualKeyEmbedded` for use as inverse composite fks
- share `#finishInit` handling for `EmbeddableMappingType`, `VirtualIdEmbeddable` and `IdClassEmbeddable`
- ability to use the containing composite owner as the parent of a composite (legacy behavior is to always use the "first" entity
Prep work for EmbeddableInstantiator - initializer
Still need to
- integrate EmbeddableInstantiator work
- integrate embedded forms. `VirtualIdEmbeddable` does not really need it as it can use the id-mapping itself as the embedded form. But `IdClassEmbedded` should really be integrated
- integrate `VirtualKeyEmbeddable` and `VirtualKeyEmbedded` for use as inverse composite fks
- share `#finishInit` handling for `EmbeddableMappingType`, `VirtualIdEmbeddable` and `IdClassEmbeddable`
- ability to use the containing composite owner as the parent of a composite (legacy behavior is to always use the "first" entity
Prep work for EmbeddableInstantiator - initializer
Still need to
- integrate EmbeddableInstantiator work
- integrate embedded forms. `VirtualIdEmbeddable` does not really need it as it can use the id-mapping itself as the embedded form. But `IdClassEmbedded` should really be integrated
- integrate `VirtualKeyEmbeddable` and `VirtualKeyEmbedded` for use as inverse composite fks
- share `#finishInit` handling for `EmbeddableMappingType`, `VirtualIdEmbeddable` and `IdClassEmbeddable`
- ability to use the containing composite owner as the parent of a composite (legacy behavior is to always use the "first" entity
More clean-up (Tuplizers!!)
Mostly EntityTuplizer in this commit
Still need to
- integrate EmbeddableInstantiator work
- integrate embedded forms. `VirtualIdEmbeddable` does not really need it as it can use the id-mapping itself as the embedded form. But `IdClassEmbedded` should really be integrated
- integrate `VirtualKeyEmbeddable` and `VirtualKeyEmbedded` for use as inverse composite fks
- share `#finishInit` handling for `EmbeddableMappingType`, `VirtualIdEmbeddable` and `IdClassEmbeddable`
Clean-up
Still need to
- integrate EmbeddableInstantiator work
- integrate embedded forms. `VirtualIdEmbeddable` does not really need it as it can use the id-mapping itself as the embedded form. But `IdClassEmbedded` should really be integrated
- integrate `VirtualKeyEmbeddable` and `VirtualKeyEmbedded` for use as inverse composite fks
- share `#finishInit` handling for `EmbeddableMappingType`, `VirtualIdEmbeddable` and `IdClassEmbeddable`
EmbeddableInstantiator
Still need to
- integrate EmbeddableInstantiator work
- integrate embedded forms. `VirtualIdEmbeddable` does not really need it as it can use the id-mapping itself as the embedded form. But `IdClassEmbedded` should really be integrated
- integrate `VirtualKeyEmbeddable` and `VirtualKeyEmbedded` for use as inverse composite fks
- share `#finishInit` handling for `EmbeddableMappingType`, `VirtualIdEmbeddable` and `IdClassEmbeddable`
Added new form of `SqlExpressionResolver#createColumnReferenceKey`
Still need to
- integrate EmbeddableInstantiator work
- integrate embedded forms. `VirtualIdEmbeddable` does not really need it as it can use the id-mapping itself as the embedded form. But `IdClassEmbedded` should really be integrated
- integrate `VirtualKeyEmbeddable` and `VirtualKeyEmbedded` for use as inverse composite fks
- share `#finishInit` handling for `EmbeddableMappingType`, `VirtualIdEmbeddable` and `IdClassEmbeddable`
This 3rd commit cleans up some code
Still need to
- integrate EmbeddableInstantiator work
- integrate embedded forms. `VirtualIdEmbeddable` does not really need it as it can use the id-mapping itself as the embedded form. But `IdClassEmbedded` should really be integrated
- integrate `VirtualKeyEmbeddable` and `VirtualKeyEmbedded` for use as inverse composite fks
- share `#finishInit` handling for `EmbeddableMappingType`, `VirtualIdEmbeddable` and `IdClassEmbeddable`
This second commit renames `EmbeddableMappingType`
Still need to
- integrate EmbeddableInstantiator work
- integrate embedded forms. `VirtualIdEmbeddable` does not really need it as it can use the id-mapping itself as the embedded form. But `IdClassEmbedded` should really be integrated
- integrate `VirtualKeyEmbeddable` and `VirtualKeyEmbedded` for use as inverse composite fks
- share `#finishInit` handling for `EmbeddableMappingType`, `VirtualIdEmbeddable` and `IdClassEmbeddable`
This initial commit is scaled back - it only introduces the embeddable forms and supporting changes.
Still need to
- integrate EmbeddableInstantiator work
- integrate embedded forms. `VirtualIdEmbeddable` does not really need it as it can use the id-mapping itself as the embedded form. But `IdClassEmbedded` should really be integrated
- integrate `VirtualKeyEmbeddable` and `VirtualKeyEmbedded` for use as inverse composite fks