Skip to content

Commit 5bf8dbb

Browse files
committed
HHH-19551 - Address deficiencies in pessimistic locking
1 parent 71813b4 commit 5bf8dbb

File tree

4 files changed

+3
-19
lines changed

4 files changed

+3
-19
lines changed

hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/SQLServerLegacySqlAstTranslator.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,6 @@
5050
import org.hibernate.sql.exec.spi.JdbcOperation;
5151
import org.hibernate.type.SqlTypes;
5252

53-
import static org.hibernate.Timeouts.NO_WAIT_MILLI;
54-
import static org.hibernate.Timeouts.SKIP_LOCKED_MILLI;
5553

5654
/**
5755
* A SQL AST translator for SQL Server.

hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/SybaseAnywhereSqlAstTranslator.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import java.util.List;
88
import java.util.function.Consumer;
99

10-
import org.hibernate.Internal;
1110
import org.hibernate.LockMode;
1211
import org.hibernate.dialect.sql.ast.SybaseSqlAstTranslator;
1312
import org.hibernate.engine.spi.SessionFactoryImplementor;

hibernate-core/src/main/java/org/hibernate/dialect/Dialect.java

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@
4545
import org.hibernate.dialect.lock.OptimisticLockingStrategy;
4646
import org.hibernate.dialect.lock.PessimisticForceIncrementLockingStrategy;
4747
import org.hibernate.dialect.lock.PessimisticLockStyle;
48-
import org.hibernate.dialect.lock.PessimisticReadSelectLockingStrategy;
4948
import org.hibernate.dialect.lock.SelectLockingStrategy;
5049
import org.hibernate.dialect.lock.internal.SqlAstBasedLockingStrategy;
5150
import org.hibernate.dialect.lock.spi.OuterJoinLockingLevel;
@@ -2273,22 +2272,11 @@ protected LockingStrategy buildPessimisticForceIncrementStrategy(EntityPersister
22732272
}
22742273

22752274
protected LockingStrategy buildPessimisticWriteStrategy(EntityPersister lockable, LockMode lockMode, Locking.Scope lockScope) {
2276-
// if ( lockScope == Locking.Scope.ROOT_ONLY && !lockable.hasMultipleTables() ) {
2277-
// return new PessimisticWriteSelectLockingStrategy( lockable, lockMode );
2278-
// }
2279-
// else {
2280-
// return new SqlAstBasedLockingStrategy( lockable, lockMode, lockScope );
2281-
// }
22822275
return new SqlAstBasedLockingStrategy( lockable, lockMode, lockScope );
22832276
}
22842277

22852278
protected LockingStrategy buildPessimisticReadStrategy(EntityPersister lockable, LockMode lockMode, Locking.Scope lockScope) {
2286-
if ( lockScope == Locking.Scope.ROOT_ONLY && !lockable.hasMultipleTables() ) {
2287-
return new PessimisticReadSelectLockingStrategy( lockable, lockMode );
2288-
}
2289-
else {
2290-
return new SqlAstBasedLockingStrategy( lockable, lockMode, lockScope );
2291-
}
2279+
return new SqlAstBasedLockingStrategy( lockable, lockMode, lockScope );
22922280
}
22932281

22942282
protected LockingStrategy buildOptimisticForceIncrementStrategy(EntityPersister lockable, LockMode lockMode) {

hibernate-core/src/main/java/org/hibernate/dialect/lock/internal/SqlAstBasedLockingStrategy.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
import org.hibernate.sql.exec.spi.JdbcParameterBindings;
3939
import org.hibernate.sql.exec.spi.JdbcSelectExecutor;
4040
import org.hibernate.sql.results.graph.DomainResult;
41+
import org.hibernate.sql.results.graph.internal.ImmutableFetchList;
4142
import org.hibernate.sql.results.spi.NoRowException;
4243
import org.hibernate.sql.results.spi.SingleResultConsumer;
4344
import org.hibernate.stat.spi.StatisticsImplementor;
@@ -89,9 +90,7 @@ private void doLock(Object id, Object version, Object object, int timeout, Event
8990
new SqlAliasBaseManager(),
9091
new SimpleFromClauseAccessImpl(),
9192
lockOptions,
92-
(fetchParent, creationState) -> {
93-
return null;
94-
},
93+
(fetchParent, creationState) -> ImmutableFetchList.EMPTY,
9594
true,
9695
new LoadQueryInfluencers( factory ),
9796
factory.getSqlTranslationEngine()

0 commit comments

Comments
 (0)