Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This commit fixes HHH-19076. This bug is not trivial to reproduce since it requires a very specific entity setup:
@MappedSuperclass
@MappedSuperclass
must have an@Id
@IdClass
@IdClass
is processed firstSpecifically the last step is impossible to reproduce reliably, since it depends on the order hibernate processes the entities, which in turn depends on the order of the values of a map
entityBindingMap
.Depending on the order the entities are processed, the
MetadataContext.mappedSuperClassTypeToPersistentClass
map stores for the shared@MappedSuperclass
a different entity.However, to correctly process the attributes of the
@MappedSuperclass
, the entity with the@IdClass
must be used inresolveVirtualIdentifierMember
.To fix this, this commit changes the simple
mappedSuperClassTypeToPersistentClass
map to store a setof entities instead of only the first encountered entity.
Next, the
resolveVirtualIdentifierMember
function uses the first matching entity of this set.By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license
and can be relicensed under the terms of the LGPL v2.1 license in the future at the maintainers' discretion.
For more information on licensing, please check here.
https://hibernate.atlassian.net/browse/HHH-19076