Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/sql
In directory sc8-pr-cvs1:/tmp/cvs-serv21387/src/net/sf/hibernate/sql
Modified Files:
InFragment.java
Log Message:
fixed problem loading one-to-many in Sybase
alias length limitation for collection columns
added force attribute to <discriminator>
better handling of 'null' discriminators
Index: InFragment.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/sql/InFragment.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** InFragment.java 9 Feb 2003 06:28:16 -0000 1.2
--- InFragment.java 16 Mar 2003 01:45:53 -0000 1.3
***************
*** 33,43 ****
buf.append(columnName);
if ( values.size()>1 ) {
buf.append(" in (");
Iterator iter = values.iterator();
while ( iter.hasNext() ) {
! buf.append( iter.next() );
! if ( iter.hasNext() ) buf.append(StringHelper.COMMA_SPACE);
}
buf.append(StringHelper.CLOSE_PAREN);
}
else {
--- 33,55 ----
buf.append(columnName);
if ( values.size()>1 ) {
+ boolean allowNull = false;
buf.append(" in (");
Iterator iter = values.iterator();
while ( iter.hasNext() ) {
! Object value = iter.next();
! if ( "null".equals(value) ) {
! allowNull = true;
! }
! else {
! buf.append(value);
! if ( iter.hasNext() ) buf.append(StringHelper.COMMA_SPACE);
! }
}
buf.append(StringHelper.CLOSE_PAREN);
+ if (allowNull) buf
+ .insert(0, " is null or ")
+ .insert(0, columnName)
+ .insert(0, StringHelper.OPEN_PAREN)
+ .append(StringHelper.CLOSE_PAREN);
}
else {
|