|
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();
|