HHH-1917 updated comment

This commit is contained in:
Brett Meyer 2013-01-15 13:23:59 -05:00
parent 5a50ac90d5
commit f7ca23e071
1 changed files with 8 additions and 8 deletions

View File

@ -89,7 +89,7 @@ public class TableBasedDeleteHandlerImpl
AbstractCollectionPersister cPersister = (AbstractCollectionPersister)factory.getCollectionPersister( cType.getRole() ); AbstractCollectionPersister cPersister = (AbstractCollectionPersister)factory.getCollectionPersister( cType.getRole() );
if ( cPersister.isManyToMany() ) { if ( cPersister.isManyToMany() ) {
deletes.add( generateDelete( cPersister.getTableName(), deletes.add( generateDelete( cPersister.getTableName(),
cPersister.getKeyColumnNames(), idSubselect)); cPersister.getKeyColumnNames(), idSubselect, "bulk delete - m2m join table cleanup"));
} }
} }
} }
@ -97,20 +97,20 @@ public class TableBasedDeleteHandlerImpl
String[] tableNames = targetedPersister.getConstraintOrderedTableNameClosure(); String[] tableNames = targetedPersister.getConstraintOrderedTableNameClosure();
String[][] columnNames = targetedPersister.getContraintOrderedTableKeyColumnClosure(); String[][] columnNames = targetedPersister.getContraintOrderedTableKeyColumnClosure();
for ( int i = 0; i < tableNames.length; i++ ) { for ( int i = 0; i < tableNames.length; i++ ) {
deletes.add( generateDelete( tableNames[i], columnNames[i], idSubselect)); // TODO : an optimization here would be to consider cascade deletes and not gen those delete statements;
// the difficulty is the ordering of the tables here vs the cascade attributes on the persisters ->
// the table info gotten here should really be self-contained (i.e., a class representation
// defining all the needed attributes), then we could then get an array of those
deletes.add( generateDelete( tableNames[i], columnNames[i], idSubselect, "bulk delete"));
} }
} }
private String generateDelete(String tableName, String[] columnNames, String idSubselect) { private String generateDelete(String tableName, String[] columnNames, String idSubselect, String comment) {
// TODO : an optimization here would be to consider cascade deletes and not gen those delete statements;
// the difficulty is the ordering of the tables here vs the cascade attributes on the persisters ->
// the table info gotten here should really be self-contained (i.e., a class representation
// defining all the needed attributes), then we could then get an array of those
final Delete delete = new Delete() final Delete delete = new Delete()
.setTableName( tableName ) .setTableName( tableName )
.setWhere( "(" + StringHelper.join( ", ", columnNames ) + ") IN (" + idSubselect + ")" ); .setWhere( "(" + StringHelper.join( ", ", columnNames ) + ") IN (" + idSubselect + ")" );
if ( factory().getSettings().isCommentsEnabled() ) { if ( factory().getSettings().isCommentsEnabled() ) {
delete.setComment( "bulk delete" ); delete.setComment( comment );
} }
return delete.toStatementString(); return delete.toStatementString();
} }