Yes I just turn on trace logging and then test the query in my SQL tool to work our what the issue is.
-----Original Message----- From: ashish paliwal [mailto:[email protected]] Sent: Wednesday, 9 September 2009 2:25 AM To: [email protected]; [email protected] Subject: Re: [NEWBIE] OpenJPA Cannot get id field returned Yes, id I too believe should be without quotes. In any case the query generated should provide with sufficient information about what is going wrong. On Tue, Sep 8, 2009 at 11:16 PM, C N Davies <[email protected]> wrote: > Seems like id is an int and your quoting it, so that shouldn't work. > > > > Try turning on SQL trace to see what SQL is being generated from your > > JPQL. > > > > Rick > > > > > > > > On Sep 8, 2009, at 3:54 AM, "B.L. Zeebub" > > <[email protected]> wrote: > > > > > > > > > > > > > > Jean-Baptiste BRIAUD -- Novlog wrote: > > >> > > >> Did you try GenerationType.IDENTITY ? > > >> @GeneratedValue(strategy = GenerationType.IDENTITY) > > >> > > >> I think it should work with int but I prefer long instead. > > >> > > > > > > GenerationType.IDENTITY appears to make no difference. However, > > > suprisingly > > > (to me anyway) > > > > > > @Test > > > public void getPlatformById() { > > > Platform platform = (Platform) em.find(Platform.class, 8); > > > assertNotNull(platform); > > > } > > > > > > works and returns the correct platform entity although platform.getId > > > () > > > still returns 0. > > > > > > @Test > > > public void getPlatformByQueryById() { > > > String jpql = "Select c from Platform c where c.id = '8'"; > > > Platform platform = (Platform) em.createQuery > > > (jpql).getSingleResult(); > > > assertNotNull(platform); > > > } > > > > > > This fails with a no instance found exception from OpenJPA > > > > > > Regards > > > > > > 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-tp3601995p3 601995.html > > >> Sent from the OpenJPA Users mailing list archive at Nabble.com. > > >> > > > > > > > > > > > > > > > -- > > > View this message in context: > http://n2.nabble.com/NEWBIE-OpenJPA-Cannot-get-id-field-returned-tp3601995p3 602236.html > > > Sent from the OpenJPA Users mailing list archive at Nabble.com. > > > > -- Ashish Paliwal Mobile : 9305128367 IIT Kanpur India
