Skip to content

Commit 876b982

Browse files
committed
HHH-19551 - Address deficiencies in pessimistic locking
1 parent 34414c4 commit 876b982

File tree

1 file changed

+3
-7
lines changed

1 file changed

+3
-7
lines changed

hibernate-core/src/main/java/org/hibernate/sql/ast/internal/StandardLockingClauseStrategy.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import org.hibernate.Locking;
99
import org.hibernate.dialect.Dialect;
1010
import org.hibernate.dialect.RowLockStrategy;
11-
import org.hibernate.internal.util.collections.ArrayHelper;
1211
import org.hibernate.internal.util.collections.CollectionHelper;
1312
import org.hibernate.metamodel.mapping.EntityAssociationMapping;
1413
import org.hibernate.metamodel.mapping.ForeignKeyDescriptor;
@@ -17,7 +16,6 @@
1716
import org.hibernate.metamodel.mapping.ValuedModelPart;
1817
import org.hibernate.metamodel.mapping.internal.BasicValuedCollectionPart;
1918
import org.hibernate.persister.entity.EntityPersister;
20-
import org.hibernate.persister.entity.mutation.EntityMutationTarget;
2119
import org.hibernate.sql.ast.SqlAstJoinType;
2220
import org.hibernate.sql.ast.spi.LockingClauseStrategy;
2321
import org.hibernate.sql.ast.spi.SqlAppender;
@@ -75,11 +73,9 @@ public StandardLockingClauseStrategy(
7573
@Override
7674
public void registerRoot(TableGroup root) {
7775
if ( !queryHasOuterJoins && !dialect.supportsOuterJoinForUpdate() ) {
78-
if ( root.getModelPart() instanceof EntityMutationTarget entityMapping ) {
79-
if ( ArrayHelper.size( entityMapping.getTableMappings() ) > 1 ) {
80-
// joined inheritance and/or secondary tables - inherently has outer joins
81-
queryHasOuterJoins = true;
82-
}
76+
if ( CollectionHelper.isNotEmpty( root.getTableReferenceJoins() ) ) {
77+
// joined inheritance and/or secondary tables - inherently has outer joins
78+
queryHasOuterJoins = true;
8379
}
8480
}
8581

0 commit comments

Comments
 (0)