Hi, On 2015-03-01, 7:51 AM, "OC" wrote:
Hello there, I'll need to copy thousands of objects from one table to another; the copying'll be almost verbatim, but for a relationship. Namely, entity OldAuction <->> OldRecord (relationships records->> and inverse <-auction) entity NewAuction <->> NewRecord (relationships records->> and inverse <-newAuction) Entity NewRecord has all attributes of OldRecord (and perhaps a couple of others) The naïve code would be something like === def orig=... an object of the OldAuction entity ... def new=... an object of the NewAuction entity ... orig.allRecords().each { OldRecord old -> def newRecord=EOUtilities.createAndInsertInstance(new.editingContext(),'NewRecord') newRecord.newAuction=new newRecord.takeValuesFromDictionary(old.valuesForKeys(old.attributeKeys())) } new.editingContext().saveChanges() === I'd do this in batches, say 200 - 1000 auctions and then save, dispose the EC, create a new one and loop. That avoid any possible problems with too much retained memory. There's no need to make this lightning fast, e.g., a dedicated SQL procedure would definitely be an overkill; but still, it should be as fast as possible without making the code too complex, unintelligible and unmaintainable. I wonder, what's the best way? Guess I might e.g., fetch rawrows for orig.allRecords somehow, and use _them_ for the takeValuesFromDictionary argument? As long as you just want data values and not EOs for a relationship. Chuck
_______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com