Re: New Enterprise-Object of old one

From: David LeBer (dleber_wode..odeferous.com)
Date: Thu May 12 2011 - 18:52:12 UTC

  • Next message: Andrus Adamchik: "WOLips mail archive at ObjectStyle"

    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