Skip to content

Commit 409aba9

Browse files
committed
HHH-18610 DynamicFetchBuilderLegacy LockMode
1 parent 8678795 commit 409aba9

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,
@@ -106,6 +108,7 @@ public String getFetchableName() {
106108

107109
@Override
108110
public NativeQuery.FetchReturn setLockMode(LockMode lockMode) {
111+
this.lockMode = lockMode;
109112
return this;
110113
}
111114

@@ -176,6 +179,9 @@ public Fetch buildFetch(
176179
final DomainResultCreationStateImpl creationState = impl( domainResultCreationState );
177180
final TableGroup ownerTableGroup = creationState.getFromClauseAccess().findByAlias( ownerTableAlias );
178181
final TableGroup tableGroup;
182+
if ( lockMode != null ) {
183+
domainResultCreationState.getSqlAstCreationState().registerLockMode( tableAlias, lockMode );
184+
}
179185
if ( fetchable instanceof TableGroupJoinProducer ) {
180186
final SqlAliasBase sqlAliasBase = new SqlAliasBaseConstant( tableAlias );
181187
final TableGroupJoin tableGroupJoin = ( (TableGroupJoinProducer) fetchable ).createTableGroupJoin(
@@ -346,11 +352,6 @@ public void addFetchBuilder(Fetchable fetchable, FetchBuilder fetchBuilder) {
346352
fetchBuilderMap.put( fetchable, fetchBuilder );
347353
}
348354

349-
// @Override
350-
// public void visitFetchBuilders(BiConsumer<Fetchable, FetchBuilder> consumer) {
351-
// fetchBuilderMap.forEach( consumer );
352-
// }
353-
354355
@Override
355356
public boolean equals(Object o) {
356357
if ( this == o ) {
@@ -364,6 +365,7 @@ public boolean equals(Object o) {
364365
return tableAlias.equals( that.tableAlias )
365366
&& ownerTableAlias.equals( that.ownerTableAlias )
366367
&& fetchable.equals( that.fetchable )
368+
&& lockMode.equals( that.lockMode )
367369
&& Objects.equals( columnNames, that.columnNames )
368370
&& Objects.equals( fetchBuilderMap, that.fetchBuilderMap )
369371
&& Objects.equals( resultBuilderEntity, that.resultBuilderEntity );
@@ -374,6 +376,7 @@ public int hashCode() {
374376
int result = tableAlias.hashCode();
375377
result = 31 * result + ownerTableAlias.hashCode();
376378
result = 31 * result + fetchable.hashCode();
379+
result = 31 * result + lockMode.hashCode();
377380
result = 31 * result + ( columnNames != null ? columnNames.hashCode() : 0 );
378381
result = 31 * result + ( fetchBuilderMap != null ? fetchBuilderMap.hashCode() : 0 );
379382
result = 31 * result + ( resultBuilderEntity != null ? resultBuilderEntity.hashCode() : 0 );

0 commit comments

Comments
 (0)