openjpa-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "C N Davies" <...@cndavies.com>
Subject RE: [NEWBIE] OpenJPA Cannot get id field returned
Date Tue, 08 Sep 2009 17:46:36 GMT
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"  
> <roger.varley@googlemail.com> 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-tp3601995p3601995.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-tp3601995p3602236.html
> > Sent from the OpenJPA Users mailing list archive at Nabble.com.
> 


Mime
View raw message