From: <one...@us...> - 2002-11-27 16:42:59
|
Update of /cvsroot/hibernate/Hibernate/cirrus/hibernate/persister In directory sc8-pr-cvs1:/tmp/cvs-serv19142/cirrus/hibernate/persister Modified Files: EntityPersister.java MultiTableEntityPersister.java Log Message: fix for ms sql server + class with no properties + native id Index: EntityPersister.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate/cirrus/hibernate/persister/EntityPersister.java,v retrieving revision 1.45 retrieving revision 1.46 diff -C2 -d -r1.45 -r1.46 *** EntityPersister.java 26 Nov 2002 14:47:29 -0000 1.45 --- EntityPersister.java 27 Nov 2002 16:42:55 -0000 1.46 *************** *** 260,264 **** * Generate the SQL that inserts a row */ ! protected String generateInsertString(boolean identityInsert, String identityColumnInsertString) { String[] columnNames = getColumnNames(); --- 260,266 ---- * Generate the SQL that inserts a row */ ! protected String generateInsertString(boolean identityInsert) { ! ! String identityColumnInsertString = dialect.getIdentityInsertString(); String[] columnNames = getColumnNames(); *************** *** 270,274 **** StringBuffer buf = new StringBuffer("insert into ") .append( getTableName() ) ! .append(" ( ") .append( cirrus.hibernate.helpers.StringHelper.join( ", ", columnNames ) ) .append(commaAfterProperties) --- 272,282 ---- StringBuffer buf = new StringBuffer("insert into ") .append( getTableName() ) ! .append(' '); ! ! if ( !hasPropertyColumns && !insertIdentifierColumns && !isPolymorphic() ) { ! buf.append( dialect.getNoColumnsInsertString() ); ! } ! else { ! buf.append(" ( ") .append( cirrus.hibernate.helpers.StringHelper.join( ", ", columnNames ) ) .append(commaAfterProperties) *************** *** 280,293 **** .append( hasPropertyColumns ? "?" : "" ) .append(commaAfterProperties); ! if ( !identityInsert ) { ! buf.append( StringHelper.repeat( "?, ", getIdentifierColumnNames().length-1 ) ) ! .append("?"); ! } ! else if ( identityColumnInsertString!=null ) { ! buf.append(identityColumnInsertString); } ! buf.append(commaAfterIdentifiers); ! if ( isPolymorphic() ) buf.append(discriminatorSQLString); //to handle discriminator column ! return buf.append(" )").toString(); } --- 288,305 ---- .append( hasPropertyColumns ? "?" : "" ) .append(commaAfterProperties); ! ! if ( !identityInsert ) { ! buf.append( StringHelper.repeat( "?, ", getIdentifierColumnNames().length-1 ) ) ! .append("?"); ! } ! else if (identityColumnInsertString!=null) { ! buf.append(identityColumnInsertString); ! } ! buf.append(commaAfterIdentifiers); ! ! if ( isPolymorphic() ) buf.append(discriminatorSQLString); //to handle discriminator column ! buf.append(" )"); } ! return buf.toString(); } *************** *** 736,741 **** deleteString = generateDeleteString(); ! insertString = generateInsertString(false, null); ! identityInsertString = isIdentifierAssignedByInsert() ? generateInsertString( true, dialect.getIdentityInsertString() ) : null; updateString = generateUpdateString(); --- 748,753 ---- deleteString = generateDeleteString(); ! insertString = generateInsertString(false); ! identityInsertString = isIdentifierAssignedByInsert() ? generateInsertString(true) : null; updateString = generateUpdateString(); Index: MultiTableEntityPersister.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate/cirrus/hibernate/persister/MultiTableEntityPersister.java,v retrieving revision 1.40 retrieving revision 1.41 diff -C2 -d -r1.40 -r1.41 *** MultiTableEntityPersister.java 26 Nov 2002 14:47:29 -0000 1.40 --- MultiTableEntityPersister.java 27 Nov 2002 16:42:55 -0000 1.41 *************** *** 253,257 **** * Generate the SQL that inserts a row */ ! protected String[] generateInsertStrings(boolean identityInsert, String identityColumnInsertString) { String[] result = new String[tableNames.length]; for ( int j=0; j<tableNames.length; j++ ) { --- 253,260 ---- * Generate the SQL that inserts a row */ ! protected String[] generateInsertStrings(boolean identityInsert) { ! ! String identityColumnInsertString = dialect.getIdentityInsertString(); ! String[] result = new String[tableNames.length]; for ( int j=0; j<tableNames.length; j++ ) { *************** *** 273,278 **** StringBuffer buf = new StringBuffer("insert into ") .append( tableNames[j] ) ! .append(" ( ") ! .append( setters.toString() ); if (insertIdentifierColumns) { --- 276,285 ---- StringBuffer buf = new StringBuffer("insert into ") .append( tableNames[j] ) ! .append(' '); ! ! if (insertIdentifierColumns || hasPropertyColumns) { ! buf.append(" ( ") ! .append( setters.toString() ); ! } if (insertIdentifierColumns) { *************** *** 282,301 **** buf.setLength( buf.length()-2 ); } ! buf.append(" ) values ( ") ! .append( StringHelper.repeat( "?, ", count ) ); ! if ( j==0 && identityColumnInsertString!=null ) { ! buf.append(identityColumnInsertString); ! } ! else if (insertIdentifierColumns) { ! buf.append( StringHelper.repeat( "?, ", getIdentifierColumnNames().length-1 ) ) ! .append("?"); ! } ! else if (hasPropertyColumns) { ! buf.setLength( buf.length()-2 ); } ! result[j] = buf.append(" )").toString(); } --- 289,317 ---- buf.setLength( buf.length()-2 ); } + else { + buf.append( dialect.getNoColumnsInsertString() ); + } ! if (insertIdentifierColumns || hasPropertyColumns) { ! buf.append(" ) values ( ") ! .append( StringHelper.repeat( "?, ", count ) ); ! ! if ( j==0 && identityInsert && identityColumnInsertString!=null ) { ! buf.append(identityColumnInsertString); ! } ! else if (insertIdentifierColumns) { ! buf.append( StringHelper.repeat( "?, ", getIdentifierColumnNames().length-1 ) ) ! .append("?"); ! } ! else if (hasPropertyColumns) { ! buf.setLength( buf.length()-2 ); ! } ! ! buf.append(" )"); ! } ! result[j] = buf.toString(); } *************** *** 838,843 **** deleteStrings = generateDeleteStrings(); ! insertStrings = generateInsertStrings(false, null); ! identityInsertStrings = isIdentifierAssignedByInsert() ? generateInsertStrings( true, dialect.getIdentityInsertString() ) : null; updateStrings = generateUpdateStrings(); --- 854,859 ---- deleteStrings = generateDeleteStrings(); ! insertStrings = generateInsertStrings(false); ! identityInsertStrings = isIdentifierAssignedByInsert() ? generateInsertStrings(true) : null; updateStrings = generateUpdateStrings(); |