Hi Nikita
I've submitted a PR to fix the issue and the test case.
I did have a look at using trackedFlattenedPaths as you suggested but
preventing a flattened attribute from being added then also prevents any
updates to those attributes from being properly committed. So I had to use
an alternative method.
Thanks, regards
Jurgen
On Mon, 06 May 2024 16:22:48 +0200, Nikita Timofeev
<ntimof...@objectstyle.com> wrote:
Hi Jurgen,
Yeah, this seems like a problem here, thanks for finding it.
Delete part is indeed intended behavior and introduced some time ago (I'm
not quite sure when),
and Cayenne 4.2 had a significant refactoring that altered the overall
logic of flattened relationships.
The idea here is that the main object tracks and manages all related
flattened objects, otherwise they could just clutter the DB.
So reverting to a 3.1 logic is not an option here unfortunately.
We could (and probably should) get smarter logic that decides if we need
to
delete a flattened row.
Looking at the code, we may need to change not the delete part, but
rather
the tracking part (e.g. what goes to the
ObjectStore.trackedFlattenedPaths)
Would be great if you could provide a test case for this.