[ https://issues.apache.org/jira/browse/OPENJPA-313?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Catalina Wei updated OPENJPA-313: --------------------------------- Attachment: OPENJPA-313.2.patch attached revised patch. mvn clean install ran successful. > list of objects returned by query partially correct > --------------------------------------------------- > > Key: OPENJPA-313 > URL: https://issues.apache.org/jira/browse/OPENJPA-313 > Project: OpenJPA > Issue Type: Bug > Components: jdbc > Reporter: Catalina Wei > Fix For: 1.0.0 > > Attachments: jpa1.0.0.patch, OPENJPA-313.2.patch, OPENJPA-313.r564688.patch, OPENJPA-313.r564688.patch > > > We have an object inheritance hierarchy as follows. > FixedAnnuity extends Annuity > EquityAnnuity extends Annuity > Then we have following code: > List annuities = getServerAdapter().findHolderAnnuities(holder); > from which we expect to have a list of "Annuity" (could be Annuity, FixedAnnuity or > EquityAnnuity) from following code > EntityManager em = null; > try{ > em = factory.createEntityManager(); > Query query = em.createNamedQuery("GetHolderAnnuities"); > query.setParameter("holderId", holder.getId()); > return (List) query.getResultList(); > } > Here is the query > > SELECT a FROM Annuity AS a WHERE a.annuityHolderId = :holderId > > In the end, the list returned only the first object with the correct Object, the > rest of the objects all casted into the basic type "Annuity" > e.g. we have following code: > EntityManager em = null; > try{ > em = factory.createEntityManager(); > Query query = em.createNamedQuery("GetHolderAnnuities"); > query.setParameter("holderId", holder.getId()); > return (List) query.getResultList(); > } > > FixedAnnuity fixed1 = new FixedAnnuity(); > fixed1.setHolder(holder); > EquityAnnuity equity1 = new EquityAnnuity(); > equity1.setHolder(holder); > FixedAnnuity fixed1 = new FixedAnnuity(); > fixed2.setHolder(holder); > EquityAnnuity equity2 = new EquityAnnuity(); > equity2.setHolder(holder); > > List annuities = getServerAdapter().findHolderAnnuities(holder); > > Only annuities.get(0) returns the correct object as FixedAnnuity, the other 3 > objects returned all returned as Annuity -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.