persistence@glassfish.java.net

RE: Empty references object

From: Gordon Yorke <gordon.yorke_at_oracle.com>
Date: Fri, 26 May 2006 09:04:07 -0400

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?
--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?