cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Lon Varscsak <lon.varsc...@gmail.com>
Subject Re: onPostAdd and nested object contexts
Date Wed, 09 Sep 2015 21:01:50 GMT
This doesn't work, because onPostAdd() is called before the object is
initialized with the child's context.  So all property/relationships are
null.

-Lon

On Tue, Sep 1, 2015 at 1:16 PM, John Huss <johnthuss@gmail.com> wrote:

> Check for null for each property you are setting inside of onPostAdd(),
> like:
>
> public void onPostAdd() {
>     if (getProperty() == null) {
>         setProperty(defaultValue);
>     }
> }
>
> On Tue, Sep 1, 2015 at 2:59 PM Lon Varscsak <lon.varscsak@gmail.com>
> wrote:
>
> > I thought of that and tried it, but it's a new uninitialized object.
> > Basically the code I find in Cayenne is creating a new object in the
> parent
> > ec, then merging in changes.  So when onPostAdd is called the object is
> > brand new (no relationships set).
> >
> > -Lon
> >
> > On Tue, Sep 1, 2015 at 3:40 AM, Andrus Adamchik <andrus@objectstyle.org>
> > wrote:
> >
> > > Yeah, I must admit it is a bit messy. We may need to redesign callback
> > > logic in respect to the nested contexts. For now your most obvious
> > solution
> > > is to check for the object state within 'onPostAdd' before changing it
> > > again.
> > >
> > > if(getSomeProperty() == null) {
> > >   // we haven't been called yet, so init the property
> > >   setSomeProperty(..);
> > > }
> > >
> > > Andrus
> > >
> > > > On Sep 1, 2015, at 1:04 AM, Lon Varscsak <lon.varscsak@gmail.com>
> > wrote:
> > > >
> > > > So I am having trouble because when I call commitChangesToParent on
> one
> > > of
> > > > my nested ECs, I'm getting onPostAdd called.  So in my case, I'm
> using
> > > > onPostAdd to "setup" my object by creating relationships and setting
> > > > default values.  However, it's getting called twice.  Once when I
> > create
> > > > the object in the child context and once on the parent context
> (during
> > > > commit).
> > > >
> > > > Any ideas on how to combat this?
> > > >
> > > > -Lon
> > >
> > >
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message