From: <one...@us...> - 2002-11-25 10:00:09
|
Update of /cvsroot/hibernate/Hibernate/cirrus/hibernate/persister In directory sc8-pr-cvs1:/tmp/cvs-serv21302/cirrus/hibernate/persister Modified Files: MultiTableEntityPersister.java Log Message: fixed some PreparedStatement handling Index: MultiTableEntityPersister.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate/cirrus/hibernate/persister/MultiTableEntityPersister.java,v retrieving revision 1.37 retrieving revision 1.38 diff -C2 -d -r1.37 -r1.38 *** MultiTableEntityPersister.java 25 Nov 2002 07:25:20 -0000 1.37 --- MultiTableEntityPersister.java 25 Nov 2002 10:00:05 -0000 1.38 *************** *** 440,448 **** PreparedStatement st = session.getBatcher().prepareStatement( (String) lockers.get(lockMode) ); - - getIdentifierType().nullSafeSet(st, id, 1, session); - if ( isVersioned() ) getVersionType().nullSafeSet(st, version, 2, session); - try { ResultSet rs = st.executeQuery(); try { --- 440,447 ---- PreparedStatement st = session.getBatcher().prepareStatement( (String) lockers.get(lockMode) ); try { + getIdentifierType().nullSafeSet(st, id, 1, session); + if ( isVersioned() ) getVersionType().nullSafeSet(st, version, 2, session); + ResultSet rs = st.executeQuery(); try { *************** *** 477,486 **** // Render the SQL query final PreparedStatement[] statements = new PreparedStatement[ tableNames.length ]; - for ( int i=0; i<tableNames.length; i++ ) { - statements[i] = session.getBatcher().prepareStatement( sqlInsert()[i] ); - } - try { // Write the values of fields onto the prepared statement - we MUST use the state at the time the // insert was issued (cos of foreign key constraints). Not necessarily the object's current state --- 476,485 ---- // Render the SQL query final PreparedStatement[] statements = new PreparedStatement[ tableNames.length ]; try { + for ( int i=0; i<tableNames.length; i++ ) { + statements[i] = session.getBatcher().prepareStatement( sqlInsert()[i] ); + } + // Write the values of fields onto the prepared statement - we MUST use the state at the time the // insert was issued (cos of foreign key constraints). Not necessarily the object's current state *************** *** 496,500 **** } finally { ! for ( int i=0; i<tableNames.length; i++ ) session.getBatcher().closeStatement( statements[i] ); } --- 495,501 ---- } finally { ! for ( int i=0; i<tableNames.length; i++ ) { ! if ( statements[i]!=null ) session.getBatcher().closeStatement( statements[i] ); ! } } *************** *** 582,594 **** } - //Render the SQL query final PreparedStatement[] statements = new PreparedStatement[tableNames.length]; - for ( int i=0; i<tableNames.length; i++ ) { - statements[i] = session.getBatcher().prepareStatement( sqlDelete()[i] ); - } - - try { if ( isVersioned() ) getVersionType().nullSafeSet( statements[0], version, getIdentifierColumnNames().length + 1, session ); --- 583,593 ---- } final PreparedStatement[] statements = new PreparedStatement[tableNames.length]; try { + for ( int i=0; i<tableNames.length; i++ ) { + statements[i] = session.getBatcher().prepareStatement( sqlDelete()[i] ); + } + if ( isVersioned() ) getVersionType().nullSafeSet( statements[0], version, getIdentifierColumnNames().length + 1, session ); *************** *** 610,614 **** } finally { ! for ( int i=0; i<tableNames.length; i++ ) session.getBatcher().closeStatement( statements[i] ); } } --- 609,615 ---- } finally { ! for ( int i=0; i<tableNames.length; i++ ) { ! if ( statements[i]!=null ) session.getBatcher().closeStatement( statements[i] ); ! } } } *************** *** 638,648 **** } - //Render the SQL query final PreparedStatement[] statements = new PreparedStatement[tables]; - for ( int i=0; i<tableNames.length; i++ ) { - if ( tableUpdateNeeded[i] ) statements[i] = session.getBatcher().prepareStatement( sqlUpdate()[i] ); - } - try { int versionParam = dehydrate(id, fields, statements, session); //TODO --- 639,648 ---- } final PreparedStatement[] statements = new PreparedStatement[tables]; try { + + for ( int i=0; i<tableNames.length; i++ ) { + if ( tableUpdateNeeded[i] ) statements[i] = session.getBatcher().prepareStatement( sqlUpdate()[i] ); + } int versionParam = dehydrate(id, fields, statements, session); //TODO *************** *** 653,657 **** if ( tableUpdateNeeded[i] ) check( statements[i].executeUpdate(), id ); } - } --- 653,656 ---- *************** *** 662,666 **** finally { for ( int i=0; i<tableNames.length; i++ ) { ! if ( tableUpdateNeeded[i] ) session.getBatcher().closeStatement( statements[i] ); } } --- 661,665 ---- finally { for ( int i=0; i<tableNames.length; i++ ) { ! if ( statements[i]!=null ) session.getBatcher().closeStatement( statements[i] ); } } |