Re: Conditions when PersistenceState gets "hollow"

From: Nishant Neeraj (nishant.has.a.questio..mail.com)
Date: Thu Apr 01 2010 - 18:46:03 EDT

  • Next message: Andrus Adamchik: "Re: Conditions when PersistenceState gets "hollow""

    Seems like this does the trick

    if(hollowObject.getPersistenceState() == PersistenceState.HOLLOW){
                ObjectIdQuery query = new
    ObjectIdQuery(hollowObject.getObjectId());
                List<HollowObjectType> resultSet =
    getDataContext().performQuery(query);
    }

    So, perhaps I will end-up in adding a layer that between Wicket and Cayenne
    that (a) Checks if object is HOLLOW, (b) Inflate, if 'a' is true.

    Now, what is the impact on performance due to this layer... I am a bit
    skeptical because I hope this should be using CACHE and not actually
    querying DB. See Here [1].

    [1]
    http://cayenne.apache.org/doc30/api/org/apache/cayenne/query/ObjectIdQuery.html

    Thanks
    Nishant

    On Fri, Apr 2, 2010 at 12:57 AM, Nishant Neeraj <
    nishant.has.a.questio..mail.com> wrote:

    > Thanks for the reply.
    > Yes, Wicket does serialize/de-serialize objects to/from session-store...
    > so, do I need to explicitly inflate the objects or there is a way to make
    > sure deserialization occurs properly?
    >
    > Thanks
    > Nishant
    >
    >
    > On Fri, Apr 2, 2010 at 12:38 AM, Andrus Adamchik <an....bjectstyle.org<andrus@objectstyle.org>
    > > wrote:
    >
    >> I haven't used Wicket, but is there (de)serialization of objects involved
    >> when rendering a form and then submitting it back? This might result in
    >> turning an object to a hollow state. The last observation may be due to the
    >> object deserialized outside of its context...
    >>
    >> Andrus
    >>
    >>
    >> On Apr 1, 2010, at 9:28 PM, Nishant Neeraj wrote:
    >>
    >> Also, when I "touch" (call getXXX) on the object it return empty string.
    >>>
    >>> On Thu, Apr 1, 2010 at 11:29 PM, Nishant Neeraj <nishant....mail.com
    >>> >wrote:
    >>>
    >>> Hi,
    >>>>
    >>>> I am using Cayenne with Wicket.
    >>>>
    >>>> There are situations when I see object's persistence state HOLLOW.
    >>>> Specially, when I have committed something on a page, say by form
    >>>> submission, .... then clicked browser back button to come back to the
    >>>> same
    >>>> page and try to resubmit the form.
    >>>>
    >>>> The problem is, when resubmitting, instead of over-writing the same
    >>>> object.. it is trying to insert it in DB.. but since it has unique key
    >>>> that
    >>>> conflicts which previous commit, MySQL throws an exception.
    >>>>
    >>>> I wanted to know what are the situations when a data object is assigned
    >>>> HOLLOW?
    >>>>
    >>>>
    >>>> Thanks
    >>>> Nishant
    >>>>
    >>>>
    >>>>
    >>>>
    >>
    >



    This archive was generated by hypermail 2.0.0 : Thu Apr 01 2010 - 18:46:43 EDT