Update of /cvsroot/hibernate/Hibernate/cirrus/hibernate/loader
In directory sc8-pr-cvs1:/tmp/cvs-serv28144/hibernate/loader
Modified Files:
CollectionLoader.java OneToManyLoader.java
OuterJoinLoader.java
Log Message:
fixed problems with Sybase where many-to-one id columns appeared more than once
Index: CollectionLoader.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate/cirrus/hibernate/loader/CollectionLoader.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** CollectionLoader.java 1 Feb 2003 00:16:31 -0000 1.9
--- CollectionLoader.java 16 Mar 2003 05:59:11 -0000 1.10
***************
*** 42,46 ****
sql = sqlSelect(
// SELECT CLAUSE
! selectCollectionString(persister, alias) +
( joins==0 ? "" : ", " + selectString(associations) ),
// FROM CLAUSE
--- 42,46 ----
sql = sqlSelect(
// SELECT CLAUSE
! selectCollectionString(persister, alias, true) +
( joins==0 ? "" : ", " + selectString(associations) ),
// FROM CLAUSE
Index: OneToManyLoader.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate/cirrus/hibernate/loader/OneToManyLoader.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -C2 -d -r1.16 -r1.17
*** OneToManyLoader.java 1 Feb 2003 00:16:31 -0000 1.16
--- OneToManyLoader.java 16 Mar 2003 05:59:11 -0000 1.17
***************
*** 50,56 ****
sql = sqlSelect(
// SELECT CLAUSE
! selectCollectionString(collPersister, collAlias) +
! ( joins==0 ? "" : ", " + selectString(associations) )
! + ", " +
selectString( persister, alias, suffixes[joins] ),
// FROM CLAUSE
--- 50,56 ----
sql = sqlSelect(
// SELECT CLAUSE
! selectCollectionString(collPersister, collAlias, joins>0) +
! ( ( collPersister.hasIndex() || joins>0 ) ? ", " : "" ) +
! ( joins==0 ? "" : selectString(associations) + ", " ) +
selectString( persister, alias, suffixes[joins] ),
// FROM CLAUSE
Index: OuterJoinLoader.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate/cirrus/hibernate/loader/OuterJoinLoader.java,v
retrieving revision 1.17
retrieving revision 1.18
diff -C2 -d -r1.17 -r1.18
*** OuterJoinLoader.java 18 Jan 2003 09:01:10 -0000 1.17
--- OuterJoinLoader.java 16 Mar 2003 05:59:11 -0000 1.18
***************
*** 254,271 ****
* Generate a list of collection index and element columns
*/
! protected static final String selectCollectionString(CollectionPersister persister, String alias) {
StringBuffer buf = new StringBuffer(20);
! String[] selectCols = persister.getElementColumnNames();
! for ( int i=0; i<selectCols.length; i++ ) {
! buf.append(alias)
! .append('.')
! .append( selectCols[i] );
! if (i!=selectCols.length-1) buf.append(", ");
}
if ( persister.hasIndex() ) {
String[] indexCols = persister.getIndexColumnNames();
for ( int i=0; i<indexCols.length; i++ ) {
! buf.append(", ")
! .append(alias)
.append('.')
.append( indexCols[i] );
--- 254,273 ----
* Generate a list of collection index and element columns
*/
! protected static final String selectCollectionString(CollectionPersister persister, String alias, boolean includeElements) {
StringBuffer buf = new StringBuffer(20);
! if (includeElements) {
! String[] selectCols = persister.getElementColumnNames();
! for ( int i=0; i<selectCols.length; i++ ) {
! buf.append(alias)
! .append('.')
! .append( selectCols[i] );
! if (i!=selectCols.length-1) buf.append(", ");
! }
}
if ( persister.hasIndex() ) {
String[] indexCols = persister.getIndexColumnNames();
for ( int i=0; i<indexCols.length; i++ ) {
! if (i>0 || includeElements) buf.append(", ");
! buf.append(alias)
.append('.')
.append( indexCols[i] );
|