Re: serialization issue

From: Tomi NA (hefes..mail.com)
Date: Thu May 18 2006 - 10:58:57 EDT

  • Next message: Andrus Adamchik: "Re: serialization issue"

    On 5/18/06, Andrus Adamchik <andru..bjectstyle.org> wrote:
    >
    > On May 18, 2006, at 6:54 AM, Tomi NA wrote:
    >
    > > I have a couple of questions about this.
    > > First, is there any special reason the templates, the DataObject and
    > > the ObjectId class don't have a serialVersionUID?
    >
    > We should probably add serialVersionUID to all serializable classes
    > (and somehow add it to cgen templates) - this may be an improvement
    > to the future versions. But the JVM should not throw an exception
    > when it is absent either. So are you getting some kind of warning, or
    > is this an exception?

    It is just a warning, but it seems that the serialization process
    fails as I get null values when I deserialize. I thought the missing
    UID might be the reason.

    > > Second, is it possible at all to successfuly serialize a class
    > > representing a database entity?
    >
    > Absolutely. Serialization of DataObjects worked since Cayenne 1.0.
    > The easiest way is to serialize the entire DataContext; if you
    > serialize individual objects, you will have to manually reattach them
    > to the context on deserialization (e.g. by calling 'localObject').

    > > Won't the serialization algorithm get
    > > just about the entire database, following the bean getters?

    > No, Java serialization does not use getters, it serializes fields
    > directly. However IIRC Java bean serialization does - so this can be
    > a problem.

    Hmm...I'm sorry to hear that. The problem is, I have a panel and a
    bean (presenter, model, if you will) and I bind them using jgoodies
    binding. Some of the bean fields are cayenne DataObjects. I have these
    kinds of panels all over the app, but I need to serialize just a
    couple of them: the point is to save a part of the frame (panel)
    state.
    Now, to the fields-bean properties issue...If I deserialized the
    entire context, as you suggest, what would that do for me in terms of
    (de)serializing my own bean containing private fields with their
    respective public get/set pairs?
    How should I go about serializing/deserializing such objects? All I
    have at my disposal right now is a stream to which I can write to or
    read from, depending on whether I'm serializing or deserializing. I'm
    not clear on what happens when I write an object to such a stream, no
    matter the fact I have a serialized DataContext.

    > > I'd very much appreciate a comment on the topic, as well as a prod in
    > > the right direction concerning cayenne DataObject serialization.
    > > Should I be looking at decode/encodeXML?
    >
    > If you don't care about the format, Java binary serialization should
    > be more efficient than XML.

    I couldn't care less. :)

    t.n.a.



    This archive was generated by hypermail 2.0.0 : Thu May 18 2006 - 10:59:37 EDT