FAQ
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 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 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 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

Search Discussions

Discussion Posts

Previous

Follow ups

Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 4 of 5 | next ›
Discussion Overview
groupuser @
categoriescayenne
postedAug 31, '15 at 10:04p
activeSep 9, '15 at 9:01p
posts5
users3
websitecayenne.apache.org

People

Translate

site design / logo © 2021 Grokbase