diff --git a/hibernate-core/src/main/java/org/hibernate/persister/collection/OneToManyPersister.java b/hibernate-core/src/main/java/org/hibernate/persister/collection/OneToManyPersister.java index ef0a757af1..9fd03751b3 100644 --- a/hibernate-core/src/main/java/org/hibernate/persister/collection/OneToManyPersister.java +++ b/hibernate-core/src/main/java/org/hibernate/persister/collection/OneToManyPersister.java @@ -25,6 +25,7 @@ import org.hibernate.internal.FilterAliasGenerator; import org.hibernate.internal.util.NullnessHelper; import org.hibernate.internal.util.collections.ArrayHelper; +import org.hibernate.jdbc.Expectations; import org.hibernate.mapping.Collection; import org.hibernate.metamodel.mapping.CollectionPart; import org.hibernate.metamodel.mapping.EntityIdentifierMapping; @@ -390,7 +391,8 @@ public RestrictedTableMutation generateDeleteAllAst(Mutat keyRestrictionBindings, null, parameterBinders, - sqlWhereString + sqlWhereString, + Expectations.NONE ); } diff --git a/hibernate-core/src/main/java/org/hibernate/sql/model/internal/TableUpdateStandard.java b/hibernate-core/src/main/java/org/hibernate/sql/model/internal/TableUpdateStandard.java index c6c788c537..1e7063dc8c 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/model/internal/TableUpdateStandard.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/model/internal/TableUpdateStandard.java @@ -8,6 +8,7 @@ import java.util.List; +import org.hibernate.jdbc.Expectation; import org.hibernate.sql.ast.SqlAstWalker; import org.hibernate.sql.model.MutationTarget; import org.hibernate.sql.model.ast.AbstractTableUpdate; @@ -22,6 +23,8 @@ public class TableUpdateStandard extends AbstractTableUpdate { private final String whereFragment; + private final Expectation expectation; + public TableUpdateStandard( MutatingTableReference mutatingTable, MutationTarget mutationTarget, @@ -31,6 +34,7 @@ public TableUpdateStandard( List optLockRestrictionBindings) { super( mutatingTable, mutationTarget, sqlComment, valueBindings, keyRestrictionBindings, optLockRestrictionBindings ); this.whereFragment = null; + this.expectation = null; } public TableUpdateStandard( @@ -41,7 +45,7 @@ public TableUpdateStandard( List keyRestrictionBindings, List optLockRestrictionBindings, List parameters) { - this( tableReference, mutationTarget, sqlComment, valueBindings, keyRestrictionBindings, optLockRestrictionBindings, parameters, null ); + this( tableReference, mutationTarget, sqlComment, valueBindings, keyRestrictionBindings, optLockRestrictionBindings, parameters, null, null ); } public TableUpdateStandard( @@ -52,9 +56,11 @@ public TableUpdateStandard( List keyRestrictionBindings, List optLockRestrictionBindings, List parameters, - String whereFragment) { + String whereFragment, + Expectation expectation) { super( tableReference, mutationTarget, sqlComment, valueBindings, keyRestrictionBindings, optLockRestrictionBindings, parameters ); this.whereFragment = whereFragment; + this.expectation = expectation; } @Override @@ -75,4 +81,12 @@ public String getWhereFragment() { public void accept(SqlAstWalker walker) { walker.visitStandardTableUpdate( this ); } + + @Override + public Expectation getExpectation() { + if ( expectation != null ) { + return expectation; + } + return super.getExpectation(); + } }