Re: To-one relationship not updated
Re: To-one relationship not updated
- Subject: Re: To-one relationship not updated
- From: Calven Eggert <email@hidden>
- Date: Mon, 13 Nov 2006 07:00:03 -0800
Yes, I commit the changes with myEditingContext.saveChanges().
Since this morning, I have changed the call to myEditingContext.invalidateAllObjects to Invalidating the Task record, using the method:
NSMutableArray ids = new NSMutableArray();
ids.addObject(myEditingContext.globalIDForObject(curTask));
myEditingContext.invalidateObjectsWithGlobalIDs(ids);
This again works, but I discovered that invalidating the relationship does not solve the problem. Also discovered that this is not a problem in my Oracle database but only using my MySQL database. Can anyone shed any light on this?
Still, I am hoping that there is another way to solve this. I'd hate to have to invalidate everything every time I make a change.
On Monday, November 13, 2006, at 09:45AM, "Daniele Corti" <email@hidden> wrote:
>well, do you commit the database after the first call of assignedTo? I
>mean if you call yourEditingContext.saveChanges()
>
>2006/11/13, Calven Eggert <email@hidden>:
>>
>> Hi all,
>>
>> I have a EOEnterpriseObject, called a Task record and it has a
>> relationship, called AssignedTo, that connects to another EOEnterprise
>> record called Identity. In my WO Application, when I assign an Identity to
>> the Task record thus creating the AssignedTo relationship, it works the
>> first time, but if I do it again immediately after, it then gives me the
>> error:
>>
>> updateValuesInRowDescribedByQualifier --
>> com.webobjects.jdbcadaptor.JDBCChannel method failed to
>> update row in database
>> com.webobjects.eoaccess.EOGeneralAdaptorException:
>> updateValuesInRowDescribedByQualifier --
>> com.webobjects.jdbcadaptor.JDBCChannel method failed to
>> update row in database
>> at
>> com.webobjects.eoaccess.EODatabaseContext._exceptionWithDatabaseContextInformationAdded(EODatabaseContext.java:4685)
>> at
>> com.webobjects.eoaccess.EODatabaseContext.performChanges(EODatabaseContext.java:6393)
>> at
>> com.webobjects.eocontrol.EOObjectStoreCoordinator.saveChangesInEditingContext(EOObjectStoreCoordinator.java:415)
>>
>>
>> Just recently getting a basic understanding on how WebObjects works and
>> deals with snapshots, thanks to Chuck Hill's book "Practical WebObjects", I
>> figured that the snapshot of the Task record, or actually the relationship
>> AssignedTo, must not be updated after the first assignment is set. After
>> putting in the line EditingContext.invalidateAllObjects(),
>> the problem went away. I know this isn't the best way to do this. But I
>> thought that to-one relationships were suppose to be ok and the to-many
>> needed to be babysat. I've also tried
>> setRefreshesRefetchedObjects(True) but this didn't work, I
>> assume because I'm not actually going to the db after my save for a refetch.
>> I've also tried setDefaultTimestampLag(2) but that didn't work either.
>>
>> Could someone please help me understand what is going on here? Suggested
>> readings would also be greatly appreciated.
>>
>> Thanks,
>> Calven
>>
>> _______________________________________________
>> Do not post admin requests to the list. They will be ignored.
>> Webobjects-dev mailing list (email@hidden)
>> Help/Unsubscribe/Update your Subscription:
>>
>> This email sent to email@hidden
>>
>>
>
>
>--
>Daniele Corti
>AIM: S0CR4TE5
>Messenger: email@hidden
>
>
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden