I didn't write this code, but I recall there is at least an attempt
there to order objects of the same type to address a resolvable cycle
like the one you've mentioned. Not sure what the limitations are... 1
step cycle maybe (a parent-child relationship to self), but I really
have no idea without looking at the code.
Andrus
On Jul 10, 2009, at 11:47 AM, Andrey Razumovsky wrote:
It is possible to handle the incomplete circle situation, but in
case of
complete circle it becomes very very tricky. Imagine situation
A1->B->C->A2
The correct (and only) insert order is A2, C, B, A1. But Cayenne can
never
support this currently, because it is insering all records of one
entity at
once (?).
2009/7/10 Andrus Adamchik <[email protected]>
Ok, so seems like my understanding is matching yours. Looks like a
bug.
Andrus
On Jul 10, 2009, at 11:36 AM, Andrey Razumovsky wrote:
//dev
There is no cycle between CDO, but there is cycle in DataMap between
DbEntities. AshwoodEntitySorter sorts entities that were changed,
not data
objects. For entities in same circle comparison result is zero
2009/7/10 Andrus Adamchik <[email protected]>
Let me see if I get this right... In this example there is
obviously no
closed cycle. So you are saying AshwoodEntitySorter still assumes
there
is
one, and gives up on ordering? Then this is a bug.
Andrus
On Jul 10, 2009, at 11:20 AM, Andrey Razumovsky wrote:
Imagine references avaliable A->B->C->A
1. Create dependant entity B
2. Create master entity A
3. b.setA(a)
4. Commit.
C is even never used.