[jboss-user] [EJB 3.0] - JPQL polymorphic query

juanm_med do-not-reply at jboss.com
Wed Mar 26 14:19:07 EDT 2008

I have a class hierarchy of 3 Entities, one of which is the superclass for the others:

@SequenceGenerator(name="SeqIdPer", sequenceName="SEQIDPER")
public abstract class Person implements Serializable {

public class PhysicalPerson extends Person {

public class MoralPerson extends Person {

When I execute the following JPQL:

       String strPerQuery = "SELECT OBJECT(per) FROM Person per where per.idPer = ?";                
                query.setParameter(1, idPerson);
                Person resPer = (Person)query.getSingleResult();

I get an object of the class Person, but I cannot downcast it to any of the subclasses. For example, even when I know that the person I sought is an instance of PhysicalPerson, the following cast throws a ClassCastException:

          PhysicalPerson phyPer = (PhysicalPerson )resPer;

Even more, when I print the runtime class of the object using resPer.getClass(), I get the following class:


Shouldn't the query be polymorphic, and return an object of the subclass?

I'm using JBoss 5 beta 4.

Thanks in advance.

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4139068#4139068

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4139068

More information about the jboss-user mailing list