Update of /cvsroot/hibernate/Hibernate/cirrus/hibernate/impl
In directory usw-pr-cvs1:/tmp/cvs-serv20968/hibernate/impl
Modified Files:
SessionFactoryImpl.java
Log Message:
another fix to make queries work properly with table-per-concrete-class
Index: SessionFactoryImpl.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate/cirrus/hibernate/impl/SessionFactoryImpl.java,v
retrieving revision 1.57
retrieving revision 1.58
diff -C2 -d -r1.57 -r1.58
*** SessionFactoryImpl.java 5 Nov 2002 15:24:35 -0000 1.57
--- SessionFactoryImpl.java 6 Nov 2002 00:58:02 -0000 1.58
***************
*** 594,606 ****
while ( iter.hasNext() ) {
ClassPersister p = (ClassPersister) iter.next();
! if (
! (p instanceof Queryable) && (
! clazz.equals( p.getMappedClass() ) || (
! ( ! ( (Queryable) p ).isInherited() ) &&
! clazz.isAssignableFrom( p.getMappedClass() )
! )
! )
! ) {
! results.add( p.getClassName() );
}
}
--- 594,607 ----
while ( iter.hasNext() ) {
ClassPersister p = (ClassPersister) iter.next();
! if ( p instanceof Queryable ) {
! Queryable q = (Queryable) p;
! if ( clazz.equals( q.getMappedClass() ) ) {
! results.add( q.getClassName() );
! }
! else if ( clazz.isAssignableFrom( q.getMappedClass() ) ) {
! if ( !q.isInherited() || !clazz.isAssignableFrom( q.getMappedSuperclass() ) ) {
! results.add( q.getClassName() );
! }
! }
}
}
|