mirror of
https://github.com/hibernate/hibernate-orm
synced 2025-02-07 19:58:16 +00:00
HHH-13214 Delete re-firing SQL from previous calls
This commit is contained in:
parent
0614bfe3b8
commit
0b71131136
@ -8,6 +8,7 @@
|
||||
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.SQLException;
|
||||
import java.util.Collections;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
@ -32,7 +33,7 @@ public abstract class AbstractInlineIdsDeleteHandlerImpl
|
||||
extends AbstractInlineIdsBulkIdHandler
|
||||
implements MultiTableBulkIdStrategy.DeleteHandler {
|
||||
|
||||
private final List<String> deletes = new ArrayList<>();
|
||||
private List<String> deletes;
|
||||
|
||||
public AbstractInlineIdsDeleteHandlerImpl(
|
||||
SessionFactoryImplementor factory,
|
||||
@ -42,6 +43,9 @@ public AbstractInlineIdsDeleteHandlerImpl(
|
||||
|
||||
@Override
|
||||
public String[] getSqlStatements() {
|
||||
if ( deletes.isEmpty() ) {
|
||||
return new String[0];
|
||||
}
|
||||
return deletes.toArray( new String[deletes.size()] );
|
||||
}
|
||||
|
||||
@ -51,6 +55,7 @@ public int execute(
|
||||
QueryParameters queryParameters) {
|
||||
|
||||
IdsClauseBuilder values = prepareInlineStatement( session, queryParameters );
|
||||
deletes = new ArrayList<>();
|
||||
|
||||
if ( !values.getIds().isEmpty() ) {
|
||||
final String idSubselect = values.toStatement();
|
||||
|
@ -35,7 +35,7 @@ public abstract class AbstractInlineIdsUpdateHandlerImpl
|
||||
extends AbstractInlineIdsBulkIdHandler
|
||||
implements MultiTableBulkIdStrategy.UpdateHandler {
|
||||
|
||||
private final Map<Integer, String> updates = new LinkedHashMap<>();
|
||||
private Map<Integer, String> updates;
|
||||
|
||||
private ParameterSpecification[][] assignmentParameterSpecifications;
|
||||
|
||||
@ -47,6 +47,9 @@ public AbstractInlineIdsUpdateHandlerImpl(
|
||||
|
||||
@Override
|
||||
public String[] getSqlStatements() {
|
||||
if ( updates == null ) {
|
||||
return new String[0];
|
||||
}
|
||||
return updates.values().toArray( new String[updates.values().size()] );
|
||||
}
|
||||
|
||||
@ -56,6 +59,7 @@ public int execute(
|
||||
QueryParameters queryParameters) {
|
||||
|
||||
IdsClauseBuilder values = prepareInlineStatement( session, queryParameters );
|
||||
updates = new LinkedHashMap<>();
|
||||
|
||||
if ( !values.getIds().isEmpty() ) {
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user