Hi, How is it dependent upon GenerationType ? As per the doc, "IDENTITY" means value generated by database upon insertion and "AUTO" means openjpa will decide the value. Someone please throw some light .
thanks On Tue, Sep 8, 2009 at 2:54 PM, Jean-Baptiste BRIAUD -- Novlog < [email protected]> wrote: > Did you try GenerationType.IDENTITY ? > @GeneratedValue(strategy = GenerationType.IDENTITY) > > I think it should work with int but I prefer long instead. > > On Sep 8, 2009, at 10:56 , B.L. Zeebub wrote: > > >> Hi >> >> I have attached my entity definition below. This was created over a >> pre-existing database. I create the EntityManagerFactory to obtain the >> entitymanager (em) as normal and execute the code; >> >> String jpql = "select c from Platform c"; >> em.getTransaction().begin(); >> entities = (List) em.createQuery(jpql).getResultList(); >> em.getTransaction().commit(); >> >> I get the list of Platform entities as expected. Looping through the list, >> getPlatformName() returns the text as expected, but getId() always returns >> 0 >> (zero) for all members of the list. Any ideas as to what I've missed. >> >> Regards >> >> @Entity >> @Table(name="Platform") >> public class Platform implements Serializable { >> private static final long serialVersionUID = 1L; >> >> @Id >> @GeneratedValue(strategy=GenerationType.AUTO) >> @Column(name="id", unique=true, nullable=false) >> private int id; >> >> @Column(name="PlatformName", length=32) >> private String platformName; >> >> //bi-directional many-to-one association to PEcu >> @OneToMany(mappedBy="platform") >> private Set<PEcu> pecus; >> >> public Platform() { >> } >> >> public int getId() { >> //TODO: Remove >> System.out.println("Platform.getId() called - " + this.id >> ); >> return this.id; >> } >> >> public void setId(int id) { >> this.id = id; >> } >> >> public String getPlatformName() { >> //TODO: Remove >> System.out.println("Platform.getPlatform() called - " + >> this.platformName); >> return this.platformName; >> } >> >> public void setPlatformName(String platformName) { >> this.platformName = platformName; >> } >> >> public Set<PEcu> getPecus() { >> return this.pecus; >> } >> >> public void setPecus(Set<PEcu> pecus) { >> this.pecus = pecus; >> } >> >> } >> -- >> View this message in context: >> http://n2.nabble.com/NEWBIE-OpenJPA-Cannot-get-id-field-returned-tp3601995p3601995.html >> Sent from the OpenJPA Users mailing list archive at Nabble.com. >> >> > -- Ashish Paliwal Mobile : 9305128367 IIT Kanpur India
