Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/hql
In directory sc8-pr-cvs1:/tmp/cvs-serv8629/sf/hibernate/hql
Modified Files:
QueryTranslator.java
Log Message:
fixed some problems with aliases conflicting and outer joins appearing in wrong place
Index: QueryTranslator.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/hql/QueryTranslator.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** QueryTranslator.java 18 Jan 2003 09:03:54 -0000 1.6
--- QueryTranslator.java 18 Jan 2003 09:57:36 -0000 1.7
***************
*** 437,441 ****
String selectProperties;
String selectIdentifiers;
! if ( !isShallowQuery() && size==1 ) {
OuterJoinLoader ojl = new OuterJoinLoader( factory.getDialect() );
String name = (String) returnTypes.get(0);
--- 437,441 ----
String selectProperties;
String selectIdentifiers;
! if ( !isShallowQuery() && returnTypes.size()==1 && typeMap.size()==1 && collections.size()==0 ) {
OuterJoinLoader ojl = new OuterJoinLoader( factory.getDialect() );
String name = (String) returnTypes.get(0);
***************
*** 446,450 ****
String[] ojsuffixes = new String[joins];
ojl.setSuffixed(ojsuffixes);
! for ( int i=0; i<joins; i++ ) ojsuffixes[i] = Integer.toString(i);
selectProperties = persister.propertySelectClauseFragment(name, "");
selectIdentifiers = persister.selectIdentifierString(name, "");
--- 446,450 ----
String[] ojsuffixes = new String[joins];
ojl.setSuffixed(ojsuffixes);
! for ( int i=0; i<joins; i++ ) ojsuffixes[i] = Integer.toString(i) + '_';
selectProperties = persister.propertySelectClauseFragment(name, "");
selectIdentifiers = persister.selectIdentifierString(name, "");
***************
*** 457,461 ****
suffixes[joins] = "";
for ( int i=0; i<joins; i++ ) {
! suffixes[i] = Integer.toString(i);
persisters[i] = (Queryable) ( (OuterJoinableAssociation) associations.get(i) ).subpersister; //TODO: dont like the typecast to Queryable
}
--- 457,461 ----
suffixes[joins] = "";
for ( int i=0; i<joins; i++ ) {
! suffixes[i] = Integer.toString(i) + '_';
persisters[i] = (Queryable) ( (OuterJoinableAssociation) associations.get(i) ).subpersister; //TODO: dont like the typecast to Queryable
}
***************
*** 468,472 ****
if ( !isName(name) ) throw new QueryException("unknown type: " + name);
persisters[i] = getPersisterForName(name);
! suffixes[i] = (size==1) ? "" : Integer.toString(i);
}
selectProperties = renderPropertiesSelect();
--- 468,472 ----
if ( !isName(name) ) throw new QueryException("unknown type: " + name);
persisters[i] = getPersisterForName(name);
! suffixes[i] = (size==1) ? "" : Integer.toString(i) + '_';
}
selectProperties = renderPropertiesSelect();
***************
*** 523,527 ****
for ( int k=0; k<size; k++ ) {
String name = (String) returnTypes.get(k);
! String suffix = size==1 ? "" : Integer.toString(k);
buf.append( persisters[k].selectIdentifierString(name, suffix) );
if ( k!=size-1 ) buf.append(", ");
--- 523,527 ----
for ( int k=0; k<size; k++ ) {
String name = (String) returnTypes.get(k);
! String suffix = size==1 ? "" : Integer.toString(k) + '_';
buf.append( persisters[k].selectIdentifierString(name, suffix) );
if ( k!=size-1 ) buf.append(", ");
***************
*** 551,555 ****
int size = returnTypes.size();
for ( int k=0; k<size; k++ ) {
! String suffix = (size==1) ? "" : Integer.toString(k);
String name = (String) returnTypes.get(k) ;
buf.append( persisters[k].propertySelectClauseFragment(name, suffix) );
--- 551,555 ----
int size = returnTypes.size();
for ( int k=0; k<size; k++ ) {
! String suffix = (size==1) ? "" : Integer.toString(k) + '_';
String name = (String) returnTypes.get(k) ;
buf.append( persisters[k].propertySelectClauseFragment(name, suffix) );
|