How can I unproxy a hibernate object, such that polymorphism would be supported?
Consider the following example. Classes A and B are two hibernate entities. B has two subtypes C and D.
List<A> resultSet = executeSomeHibernateQuery();
for(A nextA : resultSet) {
    for(B nextB : nextA.getBAssociations() {
        if(nextB instanceof C) {
            // do something for C
        } else if (nextB instanceof D) {
            // do something for D
        }
    }
}
This code fails to execute either the C or D block, since the B collection has been lazy loaded, and all instances of B are Hibernate proxies. I'd like a way to unproxy each instance.
Note: I realize the query can be optimized to eagerly fetch all B's. I'm looking for an alternative.
 
     
     
    