Re-enable persist in updateEntity() #3202
Merged
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.
Even though
$em->persist($entity)
does nothing for entities that are already managed by the EntityManager when they're fetched from a Repository or via a join, it is still mandatory to executepersist()
on it for projects that use a different tracking policy: https://www.doctrine-project.org/projects/doctrine-orm/en/current/reference/change-tracking-policies.htmlMy side-project Compotes uses this, and I noted a good impact in terms of performances and memory in dev (not benchmarked though) because a
flush()
doesn't need to check for all the entities in the memory, only the ones that were manually persisted.And to make this work, an entity must be re-persisted if you want to update it in the database. Hence this PR.