[jboss-user] [EJB 3.0] - Proxy classes on @Inheritance types not honoring derived typ

hindog do-not-reply at jboss.com
Thu Aug 10 20:58:58 EDT 2006


JBoss 4.0.4 GA Patch 1, ejb3-clustered from .jar installer

I have a hierarchy of entities using JOINED inheritance, the hierarchy is:

Structure
-> House
-> Apartment

(Structure is the root of the hierarchy flagged with @Inheritance attribute, the others extend Structure and provide @DiscriminatorValue's )

I have @OneToMany lazy loading from another bean to get all of the "Structure"s that are  associated with it, and the method returns all of the Structure's (House and/or Apartments), but the returned objects cannot be cast to their appropriate type.  IE:

List< Structure > structures = myBlock.getStructures();
for( Structure structure : structures )
{
    if ( structure instanceof House ) { ... } // this is always false
    if ( structure instanceof Apartment ) { ... } // this is always false
}

and deliberately casting to a sub-type via:

((House)structure).doSomething()  throws a class cast exception, even though the entity in question is discriminated as a House.   

I've tried both javassist and cglib byte enhancers, both produce the ClassCastException

So is this a bug?

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

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



More information about the jboss-user mailing list