On 2011-05-12, at 2:35 PM, Peter Müller wrote:
> Hello WO-Checkers,
> is there an easy way to make a copy on Enterprise-Object and save this as a "new" Enterprise-Object? Because the only solution I found is this:
> -------
> User u = new User();
> session.defaultEditingContext().insertObject(u);
> u.setLastname(old.lastname());
> u.setFirstname(old.firstname());
> ...
> ...
> ...
> session.defaultEditingContext().saveChanges();
This is probably more suited to the wo-dev list, but...
There is a very good section in Chuck and Sacha's Practical WebObjects on implementing EO copying, which I highly recommend you read.
Basically you create a new EO, get the existing EO's attributes and relationships, iterating over them and copying from existing to new.
Attributes are easy:
new.takeValuesFromDictionary(existing.valuesForKeys(existing.attributeKeys()));
...unless you don't want to copy all of the attributes.
Relationships are much harder, mainly because of the questions that need to be asked (i.e: do the destination objects need to be copied as well or on the relationship etc).
;david
-- David LeBer Codeferous Software 'co-def-er-ous' adj. Literally 'code-bearing' site: http://codeferous.com blog: http://davidleber.net profile: http://www.linkedin.com/in/davidleber twitter: http://twitter.com/rebeld -- WOWODC 2011 : July 1-2-3, Montreal. http://wowodc.com
This archive was generated by hypermail 2.0.0 : Thu May 12 2011 - 18:52:49 UTC