Re: Making sense of callbacks

From: Lachlan Deck (lachlan.dec..mail.com)
Date: Thu Oct 29 2009 - 22:43:34 EDT

  • Next message: Lachlan Deck: "Re: [VOTE] Apache Cayenne release 3.0B1"

    Hi Andrus,

    On 04/10/2009, at 12:37 AM, Andrus Adamchik wrote:

    > I finished this per CAY-1281. Project upgrade is performed on
    > opening it in the Modeler, so migration for the existing callback
    > users is straightforward.
    >
    > Haven't checked whether that works for ROP. I would appreciate if
    > somebody could help me with that.

    I can confirm that this is broken (unless I've missed something
    obvious) in ROP after updating to 3.0B1

    After the update it appears that an entity record is not properly
    initialised when saving from ROP. i.e., server-side validation is
    throwing some NPEs and/or thinking that values haven't been set
    (perhaps a serialisation issue?). However, the validation on the
    client-side would have caught this as, for the most part, the
    validation is the same.

    I refactored all our current server-side prePersist methods to postAdd
    and the problem saving from the client continues.

    Rolling back the cayenne jar(s) fixes the problem.

    Any suggestions?

    > On Sep 28, 2009, at 9:53 AM, Andrus Adamchik wrote:
    >
    >>
    >> On Sep 28, 2009, at 4:08 AM, Lachlan Deck wrote:
    >>
    >>>
    >>> So from what I can see the only two changes required were
    >>> 'postInsert' and adjusting the meaning of prePersist
    >>
    >> I also tend to think that less is better. This discussion thread
    >> was a nice brainstorming on the callbacks use patterns. So we've
    >> played with a few things and now I am fine if we go a full circle
    >> to the minimal change suggested earlier, and don't worry about JPA
    >> users, extra delete callbacks, or symmetry between callback types
    >> (in many respects there's little symmetry if you look at the object
    >> lifecycle - http://cayenne.apache.org/doc/persistent-object-lifecycle.html
    >> ).
    >>
    >> So here is the change I am going to make:
    >>
    >> 1. Call "prePersist" before commit
    >> 2. Introduce "postAdd" instead of current "prePersist".
    >>
    >> This change is minimal and is not incompatible with other ideas.
    >> Objections?
    >>
    >> Andrus

    with regards,

    --
    

    Lachlan Deck



    This archive was generated by hypermail 2.0.0 : Thu Oct 29 2009 - 22:44:12 EDT