Am 08.05.2014 um 05:36 schrieb Jean-François Veillette
<[email protected]>:
> PrimaryKey obtained by permanentGlobalID() are not saved as the primaryKey on
> saveChanges().
>
> I'm setting a global id as a reference for « soft relationship » (since it
> point to undefined object) instead of a « hard relationship » (usual when we
> store the pk).
>
> The problem is that I get 2 primary key (yes 2 sequences number out of the
> database):
> - the first come from the call to permanentGlobalID(), wich return 7985.
> - the next come from the save of the object itself, it ask again for a
> sequence.
> Result: the first reference is actually not pointing to the saved object!
>
>
> Here is the code for the setter:
>
> public void setReference(final ERXGenericRecord ref) {
> EOKeyGlobalID pgid = ref.permanentGlobalID();
> setReferenceGlobalID(ERXKeyGlobalID.globalIDForGID(pgid));
> // added log to debug ...
> final EOGlobalID gid = editingContext().globalIDForObject(ref);
> log.debug("GlobalID: " + gid + " permanent: " + pgid);
> }
>
> give:
> GlobalID: <EOTemporaryGlobalID: 0 0 127 0 0 1 0 0 -5 -116 1 0 0 0 1 69 -39 18
> -94 -76 -125 18 82 -3> permanent: _EOIntegralKeyGlobalID[AGA_Participant
> (java.lang.Integer)7985]
>
> It's a wonder project, all EOs (ultimately) inherit from ERXGenericRecord.
> I'm using ERXEC default factory to get editingContext.
>
> From the documentation it says it is supposed to work, so I guess I have
> something misconfigured.
Do you have a special delegate set in your EODatabaseContext? The stored
primary key (generated by primaryKeyDictionary called from permanentGlobalID)
is used by an ERXDatabaseContextDelegate. ERXExtensions.bundleDidLoad normally
sets an instance of this class as delegate.
Ralf
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list ([email protected])
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com
This email sent to [email protected]