openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Catalina Wei (JIRA)" <j...@apache.org>
Subject [jira] Updated: (OPENJPA-313) list of objects returned by query partially correct
Date Wed, 15 Aug 2007 02:25:30 GMT

     [ 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<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.


Mime
View raw message