-----Original Message-----
From: Marina Vatkina <Marina.Vatkina_at_Sun.COM>
To: persistence_at_glassfish.dev.java.net
Date: Wed, 07 Jun 2006 13:04:25 -0700
Subject: Re: Empty references object
>
> Dmitry Mozheyko wrote On 06/07/06 04:22,:
> >
> >
> >
> >
> > -----Original Message-----
> > From: Marina Vatkina <Marina.Vatkina_at_Sun.COM>
> > To: persistence_at_glassfish.dev.java.net
> > Date: Tue, 06 Jun 2006 23:15:34 -0700
> > Subject: Re: Empty references object
> >
> >
> >>Dmitry,
> >>
> >>Can you try
> >>a) to use the latest build?
> >
> >
> > use Sun-distributed build "Java EE 5 SDK First Customer Ship for Solaris SPARC"
> > Sun Java System Application Server Platform Edition 9.0 (build b48)
>
> Please try the latest build from GlassFish v2 Main branch on:
> https://glassfish.dev.java.net/downloads/persistence/JavaPersistence.html
> >
> >
> >>b) change the inheritance strategy to the default (SINGLE_TABLE), and if needed
> >>use java2db (auto DDL generation) to avoid changing your schema?
> >
> >
> > I change inheritance strategy to SINGLE_TABLE and deploy with Derby database -
> >
> > SAME RESULT :(
>
> Close to impossible :(.
>
> Can you send us the code snippet that creates/changes B grade?
I found my problem.
I use bad find method:
em.createQuery("select o from Grade o where o.id =" + id).getSingleResult();
instead of
em.find(Grade.class, id);
But where i can read why search through em.createQuery() bring to such unexpected results?
>
> thanks,
> -marina
>
> >
> >
> >>Also, is @Id correctly defined on the VersionControl class?
> >
> >
> >
> > @Entity
> > @Inheritance(strategy=InheritanceType.JOINED)
> > public class VersionControl implements Serializable {
> >
> > @Id
> > @GeneratedValue(strategy = GenerationType.AUTO)
> > private Long id;
> > ...
> >
> >
> >>thanks,
> >>-marina
> >>
> >>Dmitry Mozheyko wrote:
> >>
> >>>
> >>>-----Original Message-----
> >>>From: Marina Vatkina <Marina.Vatkina_at_Sun.COM>
> >>>To: persistence_at_glassfish.dev.java.net
> >>>Date: Tue, 06 Jun 2006 13:48:49 -0700
> >>>Subject: Re: Empty references object
> >>>
> >>>
> >>>
> >>>>Dmitry,
> >>>>
> >>>>Can you please provide more details? What does it mean "on the 'B-object-place'
> >>>>i see object with all fields = null"?
> >>>
> >>>
> >>>Yes, all field including primary key are == null, and "findAll" method of Grade-class return collection with grades, but on referenced place stay "empty"(with all nulled fields) object.
> >>>
> >>>
> >>>
> >>>>What fields does your Grade object have?
> >>>
> >>>
> >>>All inherited from VersionControl(
> >>> Long id;
> >>> @Temporal(TemporalType.TIMESTAMP)
> >>> Date versionId;
> >>> String editorName;
> >>> Boolean isActual;
> >>> Long objectId;
> >>>);
> >>>
> >>>and one self-own field
> >>>
> >>>String name;
> >>>
> >>>
> >>>
> >>>>Is VersionControl also an entity or a MappedSuperClass?
> >>>
> >>>
> >>>Also entity:
> >>>@Entity
> >>>@Inheritance(strategy=InheritanceType.JOINED)
> >>>
> >>>
> >>>
> >>>>The restart that you perform cleans up the in-memory cache of the objects
> >>>>accessed by this PU before.
> >>>
> >>>
> >>>Disable/Enable enterprise application from AdminConsole also helped.
> >>>
> >>>
> >>>
> >>>>Do you have any ideas/clues what could've caused
> >>>>this instance to have all fields null in memory?
> >>>
> >>>
> >>>NO! I don't have code that can do this.
> >>>
> >>>May be i forget any important annotations with this intricate inheritance?
> >>>
> >>>
> >>>
> >>>
> >>>>thanks,
> >>>>-marina
> >>>>
> >>>>Dmitry Mozheyko wrote:
> >>>>
> >>>>
> >>>>>-----Original Message-----
> >>>>>From: "Gordon Yorke" <gordon.yorke_at_oracle.com>
> >>>>>To: "mozheyko_d_at_mail.ru" <mozheyko_d_at_mail.ru>
> >>>>>Date: Fri, 26 May 2006 09:04:07 -0400
> >>>>>Subject: RE: Empty references object
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>>Hello Dmitry,
> >>>>>> Can you send the code that performs the update? Can you provide the source for the Grade class as well? How are the PK's structured?
> >>>>>
> >>>>>
> >>>>>####### Code for update grade of Pupil #############
> >>>>> ...
> >>>>> Long gradePK = new Long(<some received value>);
> >>>>> Grade grade = em.find(Grade.class, gradePK);
> >>>>> pupil.setGrade(grade);
> >>>>> em.persist(pupil);
> >>>>> ...
> >>>>>
> >>>>>############ PK of Grade entity is enherited from parent class
> >>>>>
> >>>>>...
> >>>>>@Entity
> >>>>>@Inheritance(strategy=InheritanceType.JOINED)
> >>>>>public class MyEntityParent implements java.io.Serializable {
> >>>>>
> >>>>> @Id
> >>>>> @GeneratedValue(strategy = GenerationType.AUTO)
> >>>>> private Long id;
> >>>>>...
> >>>>>
> >>>>>@Entity
> >>>>>public class Grade extends VersionControl {
> >>>>>...
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>>--Gordon
> >>>>>>
> >>>>>>-----Original Message-----
> >>>>>>From: Dmitry Mozheyko [mailto:mozheyko_d_at_mail.ru]
> >>>>>>Sent: Friday, May 26, 2006 4:09 AM
> >>>>>>To: persistence_at_glassfish.dev.java.net
> >>>>>>Subject: Empty references object
> >>>>>>
> >>>>>>
> >>>>>>I use glassfish b48.
> >>>>>>I need two classes with unidirectional ManyToOne relation:
> >>>>>>
> >>>>>>Pupil -> Grade
> >>>>>>
> >>>>>>###### Pupil.java ########
> >>>>>>...
> >>>>>>@Entity
> >>>>>>public class Pupil extends Person {
> >>>>>> ...
> >>>>>> @ManyToOne(targetEntity=Grade.class)
> >>>>>> private Grade grade;
> >>>>>> ...
> >>>>>>}
> >>>>>>
> >>>>>>When i change Pupil-instance grade attribute from 'A' to 'B' grade attribute in pupil instance, database updates successfully, but grade attribute of Pupil instance contents Grade-class instance with all NULL fields, and
> >>>>>>em.createQuery("select o from Grade o where order by o.name").getResultList();
> >>>>>>returns Collection with all Grade objects, but on the 'B-object-place' i see object with all fields = null.
> >>>>>>i.e.
> >>>>>>
> >>>>>>#########################
> >>>>>>id name
> >>>>>>"1" "A"
> >>>>>>"" ""
> >>>>>>"3" "C"
> >>>>>>##########################
> >>>>>>
> >>>>>>I tried to run on various platforms and glassfish versions, on JavaDB and PostgreSQL database, various CascadeType's - same result.
> >>>>>>
> >>>>>>When i redeploy my application(or restart server;-)) all is ok.
> >>>>>>
> >>>>>>When is my problem?
> >>>>>>
> >>>>
> >
> >
>