Thanks! A little late to try tonight, but since you laid it all out like that I'll give it a go.

Jeff

On Mar 1, 2009, at 10:04 PM, Andrew Lindesay wrote:

Hello Jeff;

Fair enough.  I will keep it simple...

First, create a fetch specification for the main EO that you wish to operate on and prep it for pulling out the primary key;

        EOEntity fooE = EOModelGroup.globalModelGroup().entityNamed("Foo");

        EOFetchSpecification fs = ...

        fs.setFetchesRawRows(true);
        fs.setRawRowKeyPaths(fooE.primaryKeyAttributeNames());

By doing this, you don't give EOF so much work to do ensuring the EO's you are working with are unique. OK so now fetch this into an NSArray...

        NSArray rrs = null;

        {

                EOEditingContext ec = new EOEditingContext();

                ec.lock();
                try { rrs = ec.objectsWithFetchSpecification(); }
                finally { ec.unlock(); }
        }

...work through these raw rows 50 (as an example) at a time...

        for(int i=0;i<rrs.count();i+=50)
        {
                NSMutableArray<EOQualifier> qs = new 
NSMutableArray<EOQualifier>();

                for(int j=i;(j<(i+50)) && (j<rrs.count());j++)
                {
EOGlobalID gid = fooE.globalIDForRow((NSDictionary) rrs.objectAtIndex(j)); qs.addObject(LEEOHelper.qualifierForGlobalID(gid)); <--- copy this method from LEWOStuff source.
                }

                EOEditingContext ec = new EOEditingContext();

                ec.lock();

                try
                {
EOFetchSpecification fs = new EOFetchSpecification("Foo",new EOOrQualifier(qs),null);

                        ...fetch those EO's and do some stuff with them...
                }
                finally { ec.unlock(); }
        }

...hope this helps and post back to the list (CC me) if you are confused.

cheers.

Yes, I saw your post. However, I'm not an advanced EOF user, nor do I know SQL very well (it's one of the reason I like webobjects). That and the fact that any change I make needs to be working in a couple of weeks makes me want to save a change like you suggest for later when I've got more time to come up to speed and to test. Maybe it's not as hard as it sounds? Keep in mind that right now when you say "Load the list of EO's into memory to be processed as raw-rows with the PK in the raw rows." I have NO idea what you're talking about.

___
Andrew Lindesay
www.lindesay.co.nz


_______________________________________________
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