1) About how many D items at the end of the relationship?

2) What is your memory settings for the app (Xms and Xmx args)

On May 17, 2007, at 2:36 AM, Shravan Kumar.M wrote:

Thanks for your reply Kieran,

Ok... actually removeObjectFromBothSidesOfRelationshipWithKey, does delete the D objects, when saveChnages() on editingContext is invoked.

anyway I also tried as following, but it does same job and leading to OutOfMemory...

------------------------------------------

EOKeyValueQualifier stsrQual = new EOKeyValueQualifier ("d_a", EOQualifier.QualifierOperatorEqual, this); //where, d_a is a foreign key in D to A entity. EOFetchSpecification fs = new EOFetchSpecification ("D",stsrQual,null); NSArray dObjs = editingContext ().objectsWithFetchSpecification(fs); // D records for this A object.
        int dObjsCnt = dObjs.count();
        for(int i = (dObjsCnt-1); i > 0; i--)
        {
                        D currentD = (D) dObjs.objectAtIndex(i);
                        editingContext().deleteObject(currentD);
        }

        editingContext().saveChanges();

------------------------------------------

public void deleteDs(){
NSArray dObjs = new NSArray(ds());//ds is a to-many relationship from A to D , A ---->> D

        for ( int i=0, count= dObjs.count(); i < count; i++ ) {
            D dObj = (D) dObjs.objectAtIndex(i);
removeObjectFromBothSidesOfRelationshipWithKey(d, "ds");
        }

        editingContext().saveChanges();
}


any suggestion on how to improve this process or get away from OutOfmemory problems are welcome.


Thanks & Rgds,
Shravan Kumar.M

"Let us learn from the past to profit by the present,and from the present to live better in the future."
--William WordsWorth
---------------------------------------------------------------


On 16-May-07, at 9:39 PM, Kieran Kelleher wrote:

Actually scrap (1) ...... what is probably happening is a domino effect of validateForDelete on relationships ...

.... and scarp (2) since you are just removing form relationships, not really deleting, right?

Sorry, late night working last night .... need more coffee.......

Kieran

On May 16, 2007, at 12:03 PM, Kieran Kelleher wrote:

It fetches since it needs to validateForDelete.

Two approaches off the top of my head are (1) having "One Sided Relationship" from D to A and the d's related to A are returned by a custom method that uses a fetch spec. See practical WebObject book for info on one-sided relationships, and (2) ERXEOAccessUtilities.deleteRowsDescribedByQualifier( .. );

Use (2) with care ... no EOF validation is performed and it directly deletes the rows .... no editing context save.

HTH, Kieran

On May 16, 2007, at 11:25 AM, Shravan Kumar.M wrote:

Hi Group,

I have following Entities and their relationships:

A <---->> D
B <---->> D
C <---->> D

i.e., from entity 'D' to entities 'A', 'B' or 'C' it is a to-one relationship and from other side to entity 'D' is to-many.

Now, from in EO class of 'A' I am trying to delete the entity 'D' objects as follows:

public void deleteDs(){
NSArray dObjs = new NSArray(ds());//ds is a to-many relationship from A to D , A ---->> D

        for ( int i=0, count= dObjs.count(); i < count; i++ ) {
            D dObj = (D) dObjs.objectAtIndex(i);
removeObjectFromBothSidesOfRelationshipWithKey(d, "ds");
        }

        editingContext().saveChanges();
}

Problem:

1) Causing OutOfmemory when I do this operation.
2) When editingContext().saveChanges(); is invoked, it is first fetching all the "D" objects as follows:
                SELECT dCol1,dCol2 FROM D WHERE c_d = 12345 .
Donno why select query is referring only to c_d and not including a_d and b_d which are foreign keys to C,A,and B tables respectively in D.

I believe that OutOfmemory is caused due to above fetch. Could you please suggest how to resolve this issue and why deleting of objects is fetching the objects in to the memory in an improper way.

Looking forward to your valuable responses. Let me know if you need any other information.


Thanks & Rgds,
Shravan Kumar.M

"Let us learn from the past to profit by the present,and from the present to live better in the future."
--William WordsWorth
---------------------------------------------------------------


 _______________________________________________
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/ kieran_lists%40mac.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/kieran_lists %40mac.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/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to