I don't have the idea yet on how to solve it, but from my experience
calls to 'isSourceIndependentFromTargetChange' throughout the code are
causing a number of subtle bugs with relationships based on multi-
column PK's... Been affected by this more than once myself :-/
Andrus
On Sep 3, 2008, at 2:58 PM, Tore Halset wrote:
> Hello.
>
> I have a toOne relationship A->B. Both A and B use the same multi-
> column primary key. All Bs are already in the DataRowStore.
> DataObjectUtils.objectForPK() on any of the Bs work fine with no
> queries to the database.
>
> If I create a new DataContext and fetch in some As and issue
> a.getB(), then a query is run on the database. Why not look in the
> DataRowStore first?
>
> I have debugged this and found some interesting stuff in
> DataDomainQueryAction to handle RelationshipQuery around line 188.
>
> // check if we can derive target PK from FK... this
> implies that the
> // relationship is to-one
> if (relationship.isSourceIndependentFromTargetChange()) {
> return !DONE;
> }
>
> The thing that makes this return is
> ObjRelationship.isToDependentEntity() that returnes true. Why does
> this have to force us to requery the toOne relationship? Any way
> around this?
>
> This is happening on trunk, M4 and M3
>
> Regards,
> - Tore.
>
This archive was generated by hypermail 2.0.0 : Wed Sep 03 2008 - 08:06:52 EDT