Nope, it just writes all the fields (including any parent fields) Currently tinker a unit test especially for you ;)
LieGrue, strub --- On Mon, 1/24/11, Rick Curtis <[email protected]> wrote: > From: Rick Curtis <[email protected]> > Subject: Re: way to restore the DetachedStateManager on deserialisation? > To: [email protected] > Date: Monday, January 24, 2011, 3:27 PM > > My goal is to somehow generate > super.readExternal() and > super.writeExternal() to subsequently process the parent > class. Does this > make sense to you? > Yes, this sounds reasonable. I'm quite surprised that isn't > how we work > today. > > On Mon, Jan 24, 2011 at 7:38 AM, Mark Struberg <[email protected]> > wrote: > > > Yes, this is a workaround I figured already. > > > > But the downside is that we need to tweak a lot of > classes and it is really > > a bug imo. > > It's not a showstopper, but it's a bug ;) > > See OPENJPA-1912. > > > > I'm currently writing a unit test in the > openjpa-persistence-jdbc test > > package org.apache.openjpa.enhance. > > > > My goal is to somehow generate super.readExternal() > and > > super.writeExternal() to subsequently process the > parent class. > > Does this make sense to you? > > > > LieGrue, > > strub > > > > > > > > --- On Mon, 1/24/11, Rick Curtis <[email protected]> > wrote: > > > > > From: Rick Curtis <[email protected]> > > > Subject: Re: way to restore the > DetachedStateManager on deserialisation? > > > To: "[email protected]" > <[email protected]> > > > Date: Monday, January 24, 2011, 1:15 PM > > > What happens if you change your > > > private fields to protected? > > > > > > Thanks, > > > Rick > > > > > > On Jan 24, 2011, at 5:51 AM, Mark Struberg <[email protected]> > > > wrote: > > > > > > > Hi! > > > > > > > > I've tried it again and it works (maybe I > had a typo > > > in my config, who knows). > > > > > > > > So I now get the pcStateManager back, but > now another > > > issue appears: the code uses Externalizable and > the > > > generated readExternal and writeExternal try to > also write > > > the parent fields. This is bad since it doesn't > work for > > > private fields... > > > > I will file a jiraffe. > > > > > > > > LieGrue, > > > > strub > > > > > > > > --- On Tue, 1/18/11, Mark Struberg <[email protected]> > > > wrote: > > > > > > > >> From: Mark Struberg <[email protected]> > > > >> Subject: Re: way to restore the > > > DetachedStateManager on deserialisation? > > > >> To: [email protected] > > > >> Date: Tuesday, January 18, 2011, 4:31 > PM > > > >> the pcStateManager is null after > > > >> deserialisation as far as I've seen. > > > >> > > > >> I'll give it another debug run tomorrow > to be 100% > > > sure > > > >> about that. > > > >> > > > >> > > > >> LieGrue, > > > >> strub > > > >> > > > >> --- On Tue, 1/18/11, Michael Dick <[email protected]> > > > >> wrote: > > > >> > > > >>> From: Michael Dick <[email protected]> > > > >>> Subject: Re: way to restore the > > > DetachedStateManager > > > >> on deserialisation? > > > >>> To: [email protected] > > > >>> Date: Tuesday, January 18, 2011, > 4:26 PM > > > >>> Hi, > > > >>> > > > >>> DetachedStateField=true should do > the trick. > > > When you > > > >> use > > > >>> that configuration > > > >>> option does the statemanager get > serialized > > > and then > > > >> forget > > > >>> about _loaded? > > > >>> Or is it never serialized at all? > > > >>> > > > >>> -mike > > > >>> > > > >>> On Tue, Jan 18, 2011 at 4:33 AM, > Mark Struberg > > > <[email protected]> > > > >>> wrote: > > > >>> > > > >>>> Hi! > > > >>>> > > > >>>> Currently detached entities > behave > > > completely > > > >>> different if they are 'just' > > > >>>> detached or if they got > > > serialised/deserialised. > > > >> This > > > >>> is almost solely due > > > >>>> to _pcStateManager == null after > the > > > >> serialisation. > > > >>>> > > > >>>> After serialisation we basically > miss > > > _dirty and > > > >>> _loaded information in our > > > >>>> entities, which has a few very > bad side > > > effects. > > > >>>> > > > >>>> The one which currently annoy me > most is > > > that > > > >> setting > > > >>> a field to null > > > >>>> doesn't get stored to the > database. This > > > is > > > >> caused > > > >>> because we don't have the > > > >>>> _loaded information anymore and > thus > > > cannot know > > > >> if > > > >>> the field is null > > > >>>> because it never got loaded or > if it got > > > set to > > > >> null > > > >>> manually. > > > >>>> > > > >>>> Now my question: is it possible > to restore > > > the > > > >>> DetachedStateManager on > > > >>>> deserialisation somehow? There > is already > > > an > > > >> option > > > >>> for if: > > > >>>> > > > >>>> <property > name="openjpa.DetachState" > > > >>>> > > > value="loaded(DetachedStateField=true)"/> > > > >>>> > > > >>>> But either I'm making something > wrong, or > > > it > > > >> just > > > >>> doesn't work. Any hints > > > >>>> on that? > > > >>>> > > > >>>> Btw: I'm mainly working with > compiletime > > > >> enhanced > > > >>> classes, but I guess the > > > >>>> basic problem remains the same > in any > > > >> enhancement > > > >>> case. > > > >>>> > > > >>>> txs and LieGrue, > > > >>>> strub > > > >>>> > > > >>>> > > > >>>> > > > >>>> > > > >>>> > > > >>> > > > >> > > > >> > > > >> > > > >> > > > > > > > > > > > > > > > > > > > > > > > >
