URL: <http://savannah.gnu.org/bugs/?18938>
Summary: Wrong nullify in ToMany relationship
Project: GNUstep
Submitted by: mguesdon
Submitted on: vendredi 02.02.2007 à 19:36
Category: gdl2
Severity: 4 - Important
Item Group: Bug
Status: None
Privacy: Public
Assigned to: None
Open/Closed: Open
Discussion Lock: Any
_______________________________________________________
Details:
Having 2 entities like this:
{
attributes = (
{
columnName = code;
externalType = int4;
name = code;
valueClassName = NSNumber;
valueType = i;
allowsNull = N;
},
);
attributesUsedForLocking = (code);
classProperties = (code,toEntity2);
externalName = entity1;
primaryKeyAttributes = (code);
name = Entity1;
className=Entity1;
relationships = (
{
destination = Product;
joinSemantic =
EOInnerJoin;
isToMany = Y;
isMandatory = N;
isBidirectional = Y;
joins = (
{
destinationAttribute = foreignCode;
joinOperator = EOJoinEqualTo;
joinSemantic = EOInnerJoin;
sourceAttribute = code;
}
);
name = toEntity2;
}
);
}
{
attributes = (
{
columnName = code;
externalType = int4;
name = code;
valueClassName = NSNumber;
valueType = i;
allowsNull = N;
},
{
columnName = foreign_code;
externalType = int4;
name = foreignCode;
valueClassName = NSNumber;
valueType = i;
allowsNull = Y;
userDictionary = {
isUserNotNull = YES; min=1; max=INT_MAX; };
}
);
attributesUsedForLocking = (code);
classProperties = (code,foreignCode,toEntity1);
externalName = entity2;
name = Entity2;
className=Entity2;
primaryKeyAttributes = (code);
relationships = (
{
destination = Entity1;
joinSemantic =
EOInnerJoin;
isToMany = N;
isMandatory = N;
isBidirectional = Y;
joins = (
{
destinationAttribute = code;
joinOperator = EOJoinEqualTo;
joinSemantic = EOInnerJoin;
sourceAttribute = foreignCode;
}
);
name = toEntity1;
}
);
}
For an existing Entity2 object having a toEntity1 relationship to ObjectA,
changing this relationship to ObjectB sometimes save NULL in foreignCode
instead of ObjectB code.
This append when update are propagated first with objectB as sourceObject (it
assign the objectB value to foreignCode) and _next_ with objectA (which
nullify foreignCode).
If propagation first take objectA and next objectB, there's no problem.
The nullify operation is done in In EODatabaseContext
-nullifyAttributesInRelationship:sourceObject:destinationObject:
Any idea on this ? Should we firs apply all nullify operations and next all
relay operations ?
Manuel
_______________________________________________________
Reply to this item at:
<http://savannah.gnu.org/bugs/?18938>
_______________________________________________
Message posté via/par Savannah
http://savannah.gnu.org/
_______________________________________________
Bug-gnustep mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-gnustep
