Re: Object migrates between DataDomains

From: Andrus Adamchik (andru..bjectstyle.org)
Date: Wed Apr 12 2006 - 04:09:50 EDT

  • Next message: emre.yilma..tr.com.tr: "Re: Object migrates between DataDomains"

    Can you explain what are you trying to achieve in general (i.e.
    scenario details)? I may be able to help then.

    Andrus

    On Apr 12, 2006, at 12:01 PM, emre.yilma..tr.com.tr wrote:

    > Hi Andrus ,
    >
    > I tested DeepMergeOperation. Merged object on targetContext
    > (anotherObject) is created as I desired with its relations but I
    > observe actually anotherObject is not created physically on
    > database .I used the targetContext.commitChanges() to create on
    > database but not create it.What is the reason of this or how can
    > commit created anotherObject on targetContext.
    >
    >
    > ----- Orjinal Mesaj -----
    > Kimden: Andrus Adamchik
    > Tarih: Tuesday, April 11, 2006 17:53
    > Konu: Re: Object migrates between DataDomains
    > Kime: cayenne-use..ncubator.apache.org
    >
    >> Yeah, default mechanism is "lazy" in that it assumes that
    >> related
    >> objects can be resolved from the database on demand. Copying
    >> a
    >> subgraph of new objects is a bit more tricky. In 1.2 you can
    >> try
    >> using org.objectstyle.cayenne.util.DeepMergeOperation for
    >> your
    >> purpose. Something like this:
    >>
    >> DataContext srcContext, targetContext;
    >> DataObject object;
    >>
    >> ClassDescriptor descriptor =
    >>
    >> targetContext.getEntityResolver().getClassDescriptor("MyEntity");
    >> DataObject anotherObject = new
    >> DeepMergeOperation(targetContext).merge
    >> (object, descriptor);
    >>
    >> DeepMergeOperation merges everything that is attached to a
    >> given
    >> object and is already resolved in memory. If you need to
    >> implement
    >> different logic, you can write your own version using
    >> DeepMergeOperation as a template. An example of a different
    >> graph
    >> traversal termination logic is ObjectDetachOperation that is
    >> based on
    >> a preset tree of relationships.
    >>
    >> Andrus
    >>
    >> On Apr 11, 2006, at 5:50 PM, emre.yilma..tr.com.tr wrote:
    >>
    >>> Hi,
    >>>
    >>> Thank you for help. I make the changes as you say but I
    >> observe the
    >>> DataContext.localObject(..) not set the relations (forign
    >> key
    >>> id's).Can you help me for migrating
    >>> objects with its relations through DataDomains.
    >>>
    >>> ----- Orjinal Mesaj -----
    >>> Kimden: Andrus Adamchik <andru..bjectstyle.org>
    >>> Tarih: Monday, April 10, 2006 11:55
    >>> Konu: Re: Object migrates between DataDomains
    >>> Kime: cayenne-use..ncubator.apache.org
    >>>
    >>>>
    >>>> On Apr 10, 2006, at 11:48 AM, emre.yilma..tr.com.tr wrote:
    >>>>
    >>>>> Hi,
    >>>>>
    >>>>> Is there a easy way to migrate created objects from one
    >>>> DataDomain
    >>>>> to other DataDomain.
    >>>>>
    >>>>> Thank you...
    >>>>
    >>>>
    >>>> Technically DataObject belongs to a DataContext, so we should be
    >>>> speaking about moving objects between DataContexts (that in turn
    >>>> can
    >>>> belong to different DataDomains). This is done with
    >>>> DataContext.localObject(..)
    >>>>
    >>>> http://objectstyle.org/confluence/display/CAYDOC/Moving+Objects
    >>>> +Between+Contexts
    >>>>
    >>>> Of course object mappings have to be compatible in both domains
    >>>> involved.
    >>>>
    >>>> Andrus
    >>>>
    >>>>
    >>>
    >>
    >>



    This archive was generated by hypermail 2.0.0 : Wed Apr 12 2006 - 04:10:16 EDT