Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/hql
In directory sc8-pr-cvs1:/tmp/cvs-serv9385/sf/hibernate/hql
Modified Files:
QueryTranslator.java
Log Message:
fixed bug in generated SQL for loading <joined-subclass>es
Index: QueryTranslator.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/hql/QueryTranslator.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** QueryTranslator.java 24 Jan 2003 10:21:34 -0000 1.9
--- QueryTranslator.java 24 Jan 2003 13:07:16 -0000 1.10
***************
*** 454,459 ****
for ( int i=0; i<joins; i++ ) ojsuffixes[i] = Integer.toString(i) + StringHelper.UNDERSCORE;
ojl.setSuffixes(ojsuffixes);
! selectProperties = persister.propertySelectClauseFragment(name, StringHelper.EMPTY_STRING);
! selectIdentifiers = persister.identifierSelectClauseFragment(name, StringHelper.EMPTY_STRING);
outerJoinedProperties = ojl.selectString(associations);
outerjoin = ojl.outerJoins(associations);
--- 454,459 ----
for ( int i=0; i<joins; i++ ) ojsuffixes[i] = Integer.toString(i) + StringHelper.UNDERSCORE;
ojl.setSuffixes(ojsuffixes);
! selectProperties = persister.propertySelectFragment(name, StringHelper.EMPTY_STRING);
! selectIdentifiers = persister.identifierSelectFragment(name, StringHelper.EMPTY_STRING);
outerJoinedProperties = ojl.selectString(associations);
outerjoin = ojl.outerJoins(associations);
***************
*** 527,531 ****
String name = (String) returnTypes.get(k);
String suffix = size==1 ? StringHelper.EMPTY_STRING : Integer.toString(k) + StringHelper.UNDERSCORE;
! buf.append( persisters[k].identifierSelectClauseFragment(name, suffix) );
if ( k!=size-1 ) buf.append(StringHelper.COMMA_SPACE);
}
--- 527,531 ----
String name = (String) returnTypes.get(k);
String suffix = size==1 ? StringHelper.EMPTY_STRING : Integer.toString(k) + StringHelper.UNDERSCORE;
! buf.append( persisters[k].identifierSelectFragment(name, suffix) );
if ( k!=size-1 ) buf.append(StringHelper.COMMA_SPACE);
}
***************
*** 556,560 ****
String suffix = (size==1) ? StringHelper.EMPTY_STRING : Integer.toString(k) + StringHelper.UNDERSCORE;
String name = (String) returnTypes.get(k) ;
! buf.append( persisters[k].propertySelectClauseFragment(name, suffix) );
}
return buf.toString();
--- 556,560 ----
String suffix = (size==1) ? StringHelper.EMPTY_STRING : Integer.toString(k) + StringHelper.UNDERSCORE;
String name = (String) returnTypes.get(k) ;
! buf.append( persisters[k].propertySelectFragment(name, suffix) );
}
return buf.toString();
***************
*** 639,647 ****
String name = (String) iter.next();
Queryable p = getPersisterForName(name);
buf.append(' ')
! .append( p.fromClauseFragment( name, true, returnTypes.contains(name) && !isShallowQuery() ) );
if ( iter.hasNext() || collections.size()!=0 ) buf.append(',');
}
if (outerjoin!=null) buf.append( outerjoin.toFromFragmentString() );
--- 639,651 ----
String name = (String) iter.next();
Queryable p = getPersisterForName(name);
+ boolean includeSubclasses = returnTypes.contains(name) && !isShallowQuery();
buf.append(' ')
! .append( p.fromTableFragment(name) )
! .append( p.fromJoinFragment(name, true, includeSubclasses) );
if ( iter.hasNext() || collections.size()!=0 ) buf.append(',');
}
+ // add any outerjoins required for association fetching
+ // TODO: (need to move inside loop, eventually)
if (outerjoin!=null) buf.append( outerjoin.toFromFragmentString() );
***************
*** 666,669 ****
--- 670,674 ----
// add any outerjoins required for fetching associations
+ // TODO: (need to move inside loop, eventually)
if (outerjoin!=null) inClassWheres.append( outerjoin.toWhereFragmentString() );
|