fix: Use concrete subclass for saving with single table inheritance #8819
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.
Description of change
When using a STI scheme and an EntityManager or Repository with base class target, the wrong discriminator was written to the database despite giving a concrete entity.
This was because of the entity's target being ignored in favour of the target of the Repository or the EntityManager, which then is the (abstract) base class.
This PR introduces a fix by figuring out the concrete subclass of an entity when saving.
Further questions from my side:
childEntityMetadatas
for every entity. What about performance problems?This PR fixes #2927 (which was closed by the author without the problem being resolved).
Pull-Request Checklist
master
branchnpm run format
to apply prettier formattingnpm run test
passes with this changeFixes #0000