[
https://issues.apache.org/jira/browse/OPENJPA-313?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Kevin Sutter resolved OPENJPA-313.
----------------------------------
Resolution: Fixed
Since Catalina doesn't quite have the necessary karma yet, I will resolve this
Issue for her... :-) Thanks, Catalina, for the patch!
> 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<IAnnuity> 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<IAnnuity>) query.getResultList();
> }
> Here is the query
> <named-query name="GetHolderAnnuities">
> <query>SELECT a FROM Annuity AS a WHERE a.annuityHolderId =
> :holderId</query>
> </named-query>
> 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<IAnnuity>) 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<IAnnuity> 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.