Skip to content

Commit 63df6f9

Browse files
committed
HHH-18610 DynamicFetchBuilderLegacy LockMode
1 parent 766fab6 commit 63df6f9

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

hibernate-core/src/main/java/org/hibernate/query/results/dynamic/DynamicFetchBuilderLegacy.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@ public class DynamicFetchBuilderLegacy implements DynamicFetchBuilder, NativeQue
6060
private final Map<Fetchable, FetchBuilder> fetchBuilderMap;
6161
private final DynamicResultBuilderEntityStandard resultBuilderEntity;
6262

63+
private LockMode lockMode;
64+
6365
public DynamicFetchBuilderLegacy(
6466
String tableAlias,
6567
String ownerTableAlias,
@@ -101,6 +103,7 @@ public Fetchable getFetchable() {
101103

102104
@Override
103105
public NativeQuery.FetchReturn setLockMode(LockMode lockMode) {
106+
this.lockMode = lockMode;
104107
return this;
105108
}
106109

@@ -171,6 +174,9 @@ public Fetch buildFetch(
171174
final DomainResultCreationStateImpl creationState = impl( domainResultCreationState );
172175
final TableGroup ownerTableGroup = creationState.getFromClauseAccess().findByAlias( ownerTableAlias );
173176
final TableGroup tableGroup;
177+
if ( lockMode != null ) {
178+
domainResultCreationState.getSqlAstCreationState().registerLockMode( tableAlias, lockMode );
179+
}
174180
if ( fetchable instanceof TableGroupJoinProducer ) {
175181
final SqlAliasBase sqlAliasBase = new SqlAliasBaseConstant( tableAlias );
176182
final TableGroupJoin tableGroupJoin = ( (TableGroupJoinProducer) fetchable ).createTableGroupJoin(
@@ -341,11 +347,6 @@ public void addFetchBuilder(Fetchable fetchable, FetchBuilder fetchBuilder) {
341347
fetchBuilderMap.put( fetchable, fetchBuilder );
342348
}
343349

344-
// @Override
345-
// public void visitFetchBuilders(BiConsumer<Fetchable, FetchBuilder> consumer) {
346-
// fetchBuilderMap.forEach( consumer );
347-
// }
348-
349350
@Override
350351
public boolean equals(Object o) {
351352
if ( this == o ) {
@@ -359,6 +360,7 @@ public boolean equals(Object o) {
359360
return tableAlias.equals( that.tableAlias )
360361
&& ownerTableAlias.equals( that.ownerTableAlias )
361362
&& fetchable.equals( that.fetchable )
363+
&& lockMode.equals( that.lockMode )
362364
&& Objects.equals( columnNames, that.columnNames )
363365
&& Objects.equals( fetchBuilderMap, that.fetchBuilderMap )
364366
&& Objects.equals( resultBuilderEntity, that.resultBuilderEntity );
@@ -369,6 +371,7 @@ public int hashCode() {
369371
int result = tableAlias.hashCode();
370372
result = 31 * result + ownerTableAlias.hashCode();
371373
result = 31 * result + fetchable.hashCode();
374+
result = 31 * result + lockMode.hashCode();
372375
result = 31 * result + ( columnNames != null ? columnNames.hashCode() : 0 );
373376
result = 31 * result + ( fetchBuilderMap != null ? fetchBuilderMap.hashCode() : 0 );
374377
result = 31 * result + ( resultBuilderEntity != null ? resultBuilderEntity.hashCode() : 0 );

0 commit comments

Comments
 (0)