On Jul 24, 2010, at 1:51 AM, Farrukh Ijaz wrote: > Thanks Chuck and Ramsey for quick response. > > I don't know what was the case. Whether the editingContexts where overlapping > or not. Before I was using: > > a.delete(); > editingContext().saveChanges(); // This is the same editing context which was > used to load "a". > > The above was not triggering willDelete() of children. > > I changed this with: > > editingContext().deleteObject(a); > editingContext().saveChanges(); > > This triggered willDelete() of children.
That seems unlikely to me. a.delete() is just a convenience:
public void delete() {
editingContext().deleteObject(this);
}
Something else changed.
> I also heard that if an entity has multiple levels of hierarchy then delete
> cascade won't work after second level.
I have not heard that. I have deleted several levels with no problems.
> a.toB().toC().toD()
>
> With willDelete() implemented and "editingContext().deleteObject(a)" will
> delete a and a.toB().
>
> If above is true, what is the best practice to complete the delete cascade?
If it does not work, then your model is wrong.
Chuck
> On 2010-07-23, at 11:07 PM, Ramsey Gurley wrote:
>
>>
>> On Jul 23, 2010, at 3:56 PM, Chuck Hill wrote:
>>
>>> willDelete() won't be called on the rest until saveChanges()
>>>
>>>
>>> On Jul 23, 2010, at 12:51 PM, Farrukh Ijaz wrote:
>>>
>>>> Hi,
>>>>
>>>> I have a model where an entity A has a recursive relationship as parent
>>>> "toParentOfTypeA()" and children "toChildrenOfTypeA()". Consider it as a
>>>> tree structured entity.
>>>>
>>>> In the model have setup the entity to delete cascade.
>>>>
>>>> In the entity I have overriden the method willDelete(). Now when I delete
>>>> the parent, it fires the willDelete() of it but does not fire willDelete()
>>>> of it's children. When I checked in the willDelete() I found the
>>>> toChildren() relationship is empty but the children are there and I access
>>>> it in the component when I generate tree.
>>
>>
>> I just wanted to add that if you are calling something like setParent
>> instead of addObjectToBothSides that you will only be setting the
>> relationship one way. So from your children, you will be able to see the
>> toParent, but you will not see any children from the Parent's toChildren.
>> There's a property to do this automatically in Wonder, but I think you need
>> to be using wonder eogen templates for that property to work.
>>
>> If that isn't the case, then you may be crossing editing contexts.
>>
>> Ramsey
>>
>>
>>>> Below is the source code.
>>>>
>>>> Follwing method is overridden inside entity A.
>>>>
>>>> public void willDelete() {
>>>> ERXUtilities.deleteObjects(editingContext(), toChildrenOfTypeA());
>>>> }
>>>>
>>>> // below code is somewhere else.
>>>> A a = // object retrieved from the db.
>>>> a.delete();
>>>>
>>>> Any Idea? If needed, I can send the source code too.
>>>>
>>>> Farrukh
>>>>
>>>> Sent from my iPad _______________________________________________
>>>> Do not post admin requests to the list. They will be ignored.
>>>> Webobjects-dev mailing list ([email protected])
>>>> Help/Unsubscribe/Update your Subscription:
>>>> http://lists.apple.com/mailman/options/webobjects-dev/chill%40global-village.net
>>>>
>>>> This email sent to [email protected]
>>>
>>> --
>>> Chuck Hill Senior Consultant / VP Development
>>>
>>> Practical WebObjects - for developers who want to increase their overall
>>> knowledge of WebObjects or who are trying to solve specific problems.
>>> http://www.global-village.net/products/practical_webobjects
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Do not post admin requests to the list. They will be ignored.
>>> Webobjects-dev mailing list ([email protected])
>>> Help/Unsubscribe/Update your Subscription:
>>> http://lists.apple.com/mailman/options/webobjects-dev/ramsey%40xeotech.com
>>>
>>> This email sent to [email protected]
>>
>
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list ([email protected])
> Help/Unsubscribe/Update your Subscription:
> http://lists.apple.com/mailman/options/webobjects-dev/chill%40global-village.net
>
> This email sent to [email protected]
--
Chuck Hill Senior Consultant / VP Development
Practical WebObjects - for developers who want to increase their overall
knowledge of WebObjects or who are trying to solve specific problems.
http://www.global-village.net/products/practical_webobjects
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list ([email protected]) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [email protected]
