Currently new targets are populated with values during the "map" stage, while updated targets - later during the "merge" stage. This is inconsistent in general and complicates things like #145 implementation, as resolving source FKs to target related objects happens in multiple places.
So let's change the algorithm, to avoid immediately merging created objects during the "map" phase. Instead use the "merge" stage to populate the object whether it is new or existing.
Upgrade Notes:
Users should review their use of @AfterTargetsMapped listener to ensure it does not depend on new objects being populated. Potentially @AfterTargetsMerged listener may also be affected, though this is much less likely.
Currently new targets are populated with values during the "map" stage, while updated targets - later during the "merge" stage. This is inconsistent in general and complicates things like #145 implementation, as resolving source FKs to target related objects happens in multiple places.
So let's change the algorithm, to avoid immediately merging created objects during the "map" phase. Instead use the "merge" stage to populate the object whether it is new or existing.
Upgrade Notes:
Users should review their use of
@AfterTargetsMapped
listener to ensure it does not depend on new objects being populated. Potentially@AfterTargetsMerged
listener may also be affected, though this is much less likely.