HHH-16810 Fail to delete entity with a composite id using an @IdClass with one of its fields mapped from the id of a @ManyToOne association
This commit is contained in:
parent
59ee9a9eb6
commit
8a8dde7a41
|
@ -22,7 +22,6 @@ import org.hibernate.metamodel.mapping.AttributeMappingsList;
|
||||||
import org.hibernate.metamodel.mapping.EntityRowIdMapping;
|
import org.hibernate.metamodel.mapping.EntityRowIdMapping;
|
||||||
import org.hibernate.metamodel.mapping.EntityVersionMapping;
|
import org.hibernate.metamodel.mapping.EntityVersionMapping;
|
||||||
import org.hibernate.metamodel.mapping.SelectableMapping;
|
import org.hibernate.metamodel.mapping.SelectableMapping;
|
||||||
import org.hibernate.metamodel.mapping.SingularAttributeMapping;
|
|
||||||
import org.hibernate.persister.entity.AbstractEntityPersister;
|
import org.hibernate.persister.entity.AbstractEntityPersister;
|
||||||
import org.hibernate.sql.model.MutationOperationGroup;
|
import org.hibernate.sql.model.MutationOperationGroup;
|
||||||
import org.hibernate.sql.model.MutationType;
|
import org.hibernate.sql.model.MutationType;
|
||||||
|
@ -438,11 +437,17 @@ public class DeleteCoordinator extends AbstractMutationCoordinator {
|
||||||
if ( tableMutationBuilder != null && tableMutationBuilder.getOptimisticLockBindings() != null ) {
|
if ( tableMutationBuilder != null && tableMutationBuilder.getOptimisticLockBindings() != null ) {
|
||||||
attribute.breakDownJdbcValues(
|
attribute.breakDownJdbcValues(
|
||||||
loadedValue,
|
loadedValue,
|
||||||
tableMutationBuilder.getOptimisticLockBindings(),
|
(valueIndex, value, jdbcValueMapping) -> {
|
||||||
|
if ( value != null && !tableMutationBuilder.getKeyRestrictionBindings().contains( value ) ) {
|
||||||
|
tableMutationBuilder.getOptimisticLockBindings().consume( valueIndex, value, jdbcValueMapping );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
,
|
||||||
session
|
session
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
// else there is no actual delete statement for that table,
|
// else there is no actual delete statement for that table,
|
||||||
// generally indicates we have an on-delete=cascade situation
|
// generally indicates we have an on-delete=cascade situation
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,6 @@
|
||||||
package org.hibernate.sql.model.ast.builder;
|
package org.hibernate.sql.model.ast.builder;
|
||||||
|
|
||||||
import org.hibernate.metamodel.mapping.JdbcMapping;
|
import org.hibernate.metamodel.mapping.JdbcMapping;
|
||||||
import org.hibernate.metamodel.mapping.SelectableConsumer;
|
|
||||||
import org.hibernate.metamodel.mapping.SelectableMapping;
|
import org.hibernate.metamodel.mapping.SelectableMapping;
|
||||||
import org.hibernate.metamodel.mapping.SelectableMappings;
|
import org.hibernate.metamodel.mapping.SelectableMappings;
|
||||||
import org.hibernate.sql.model.MutationOperation;
|
import org.hibernate.sql.model.MutationOperation;
|
||||||
|
|
Loading…
Reference in New Issue