Skip to content

Commit a4e9123

Browse files
committed
some minor refactorings to Initializers
1 parent ac3e9ca commit a4e9123

9 files changed

+448
-471
lines changed

hibernate-core/src/main/java/org/hibernate/sql/results/graph/entity/internal/AbstractBatchEntitySelectFetchInitializer.java

Lines changed: 129 additions & 130 deletions
Large diffs are not rendered by default.

hibernate-core/src/main/java/org/hibernate/sql/results/graph/entity/internal/BatchEntityInsideEmbeddableSelectFetchInitializer.java

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,9 @@
88
import java.util.ArrayList;
99
import java.util.HashMap;
1010
import java.util.List;
11-
import java.util.Map;
1211

1312
import org.hibernate.engine.spi.EntityEntry;
1413
import org.hibernate.engine.spi.EntityKey;
15-
import org.hibernate.engine.spi.PersistenceContext;
16-
import org.hibernate.engine.spi.SessionFactoryImplementor;
17-
import org.hibernate.engine.spi.SharedSessionContractImplementor;
18-
import org.hibernate.internal.log.LoggingHelper;
1914
import org.hibernate.metamodel.mapping.AttributeMapping;
2015
import org.hibernate.metamodel.mapping.EntityMappingType;
2116
import org.hibernate.metamodel.mapping.internal.ToOneAttributeMapping;
@@ -31,7 +26,10 @@
3126
import org.hibernate.sql.results.jdbc.spi.RowProcessingState;
3227
import org.hibernate.type.Type;
3328

34-
public class BatchEntityInsideEmbeddableSelectFetchInitializer extends AbstractBatchEntitySelectFetchInitializer<BatchEntityInsideEmbeddableSelectFetchInitializer.BatchEntityInsideEmbeddableSelectFetchInitializerData> {
29+
import static org.hibernate.internal.log.LoggingHelper.toLoggableString;
30+
31+
public class BatchEntityInsideEmbeddableSelectFetchInitializer
32+
extends AbstractBatchEntitySelectFetchInitializer<BatchEntityInsideEmbeddableSelectFetchInitializer.BatchEntityInsideEmbeddableSelectFetchInitializerData> {
3533
protected final Setter referencedModelPartSetter;
3634
protected final AttributeMapping[] rootEmbeddableAttributes;
3735
protected final Getter[] rootEmbeddableGetters;
@@ -52,7 +50,8 @@ public Object readResolve() {
5250
}
5351
};
5452

55-
public static class BatchEntityInsideEmbeddableSelectFetchInitializerData extends AbstractBatchEntitySelectFetchInitializerData {
53+
public static class BatchEntityInsideEmbeddableSelectFetchInitializerData
54+
extends AbstractBatchEntitySelectFetchInitializerData {
5655
private HashMap<EntityKey, List<ParentInfo>> toBatchLoad;
5756

5857
public BatchEntityInsideEmbeddableSelectFetchInitializerData(
@@ -125,12 +124,12 @@ public void initializeInstance(BatchEntityInsideEmbeddableSelectFetchInitializer
125124
super.initializeInstance( data );
126125
// todo: check why this can't be moved to #registerToBatchFetchQueue
127126
if ( data.getInstance() == BATCH_PROPERTY ) {
128-
final RowProcessingState rowProcessingState = data.getRowProcessingState();
127+
final var rowProcessingState = data.getRowProcessingState();
129128
final InitializerData owningData = owningEntityInitializer.getData( rowProcessingState );
130129
final int owningEntitySubclassId = owningEntityInitializer.getConcreteDescriptor( owningData ).getSubclassId();
131130
final AttributeMapping rootEmbeddableAttribute = rootEmbeddableAttributes[owningEntitySubclassId];
132131
if ( rootEmbeddableAttribute != null ) {
133-
HashMap<EntityKey, List<ParentInfo>> toBatchLoad = data.toBatchLoad;
132+
var toBatchLoad = data.toBatchLoad;
134133
if ( toBatchLoad == null ) {
135134
toBatchLoad = data.toBatchLoad = new HashMap<>();
136135
}
@@ -171,14 +170,14 @@ public ParentInfo(
171170
@Override
172171
public void endLoading(BatchEntityInsideEmbeddableSelectFetchInitializerData data) {
173172
super.endLoading( data );
174-
final HashMap<EntityKey, List<ParentInfo>> toBatchLoad = data.toBatchLoad;
173+
final var toBatchLoad = data.toBatchLoad;
175174
if ( toBatchLoad != null ) {
176-
for ( Map.Entry<EntityKey, List<ParentInfo>> entry : toBatchLoad.entrySet() ) {
175+
for ( var entry : toBatchLoad.entrySet() ) {
177176
final EntityKey entityKey = entry.getKey();
178177
final List<ParentInfo> parentInfos = entry.getValue();
179-
final SharedSessionContractImplementor session = data.getRowProcessingState().getSession();
180-
final SessionFactoryImplementor factory = session.getFactory();
181-
final PersistenceContext persistenceContext = session.getPersistenceContextInternal();
178+
final var session = data.getRowProcessingState().getSession();
179+
final var factory = session.getFactory();
180+
final var persistenceContext = session.getPersistenceContextInternal();
182181
final Object loadedInstance = loadInstance( entityKey, toOneMapping, affectedByFilter, session );
183182
for ( ParentInfo parentInfo : parentInfos ) {
184183
final Object parentEntityInstance = parentInfo.parentEntityInstance;
@@ -194,11 +193,11 @@ public void endLoading(BatchEntityInsideEmbeddableSelectFetchInitializerData dat
194193
The value of RootEmbeddable is needed to update the ParentEntity loaded state
195194
*/
196195
final int parentEntitySubclassId = parentInfo.parentEntitySubclassId;
197-
final Object rootEmbeddable = rootEmbeddableGetters[parentEntitySubclassId].get( parentEntityInstance );
198-
loadedState[parentInfo.propertyIndex] = rootEmbeddablePropertyTypes[parentEntitySubclassId].deepCopy(
199-
rootEmbeddable,
200-
factory
201-
);
196+
final Object rootEmbeddable =
197+
rootEmbeddableGetters[parentEntitySubclassId].get( parentEntityInstance );
198+
loadedState[parentInfo.propertyIndex] =
199+
rootEmbeddablePropertyTypes[parentEntitySubclassId]
200+
.deepCopy( rootEmbeddable, factory );
202201
}
203202
}
204203
}
@@ -223,7 +222,7 @@ protected static String getRootEmbeddablePropertyName(
223222

224223
@Override
225224
public String toString() {
226-
return "BatchEntityInsideEmbeddableSelectFetchInitializer(" + LoggingHelper.toLoggableString( getNavigablePath() ) + ")";
225+
return "BatchEntityInsideEmbeddableSelectFetchInitializer(" + toLoggableString( getNavigablePath() ) + ")";
227226
}
228227

229228
}

hibernate-core/src/main/java/org/hibernate/sql/results/graph/entity/internal/BatchEntitySelectFetchInitializer.java

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,9 @@
77
import java.util.ArrayList;
88
import java.util.HashMap;
99
import java.util.List;
10-
import java.util.Map;
1110

1211
import org.hibernate.engine.spi.EntityEntry;
1312
import org.hibernate.engine.spi.EntityKey;
14-
import org.hibernate.engine.spi.PersistenceContext;
15-
import org.hibernate.engine.spi.SharedSessionContractImplementor;
16-
import org.hibernate.internal.log.LoggingHelper;
1713
import org.hibernate.metamodel.mapping.AttributeMapping;
1814
import org.hibernate.metamodel.mapping.internal.ToOneAttributeMapping;
1915
import org.hibernate.persister.entity.EntityPersister;
@@ -26,12 +22,16 @@
2622
import org.hibernate.sql.results.jdbc.spi.RowProcessingState;
2723
import org.hibernate.type.Type;
2824

29-
public class BatchEntitySelectFetchInitializer extends AbstractBatchEntitySelectFetchInitializer<BatchEntitySelectFetchInitializer.BatchEntitySelectFetchInitializerData> {
25+
import static org.hibernate.internal.log.LoggingHelper.toLoggableString;
26+
27+
public class BatchEntitySelectFetchInitializer
28+
extends AbstractBatchEntitySelectFetchInitializer<BatchEntitySelectFetchInitializer.BatchEntitySelectFetchInitializerData> {
3029
protected final AttributeMapping[] parentAttributes;
3130
protected final Setter referencedModelPartSetter;
3231
protected final Type referencedModelPartType;
3332

34-
public static class BatchEntitySelectFetchInitializerData extends AbstractBatchEntitySelectFetchInitializerData {
33+
public static class BatchEntitySelectFetchInitializerData
34+
extends AbstractBatchEntitySelectFetchInitializerData {
3535
private HashMap<EntityKey, List<ParentInfo>> toBatchLoad;
3636

3737
public BatchEntitySelectFetchInitializerData(
@@ -63,8 +63,9 @@ protected InitializerData createInitializerData(RowProcessingState rowProcessing
6363

6464
@Override
6565
protected void registerResolutionListener(BatchEntitySelectFetchInitializerData data) {
66-
final RowProcessingState rowProcessingState = data.getRowProcessingState();
67-
final InitializerData owningData = owningEntityInitializer.getData( rowProcessingState );HashMap<EntityKey, List<ParentInfo>> toBatchLoad = data.toBatchLoad;
66+
final var rowProcessingState = data.getRowProcessingState();
67+
final InitializerData owningData = owningEntityInitializer.getData( rowProcessingState );
68+
var toBatchLoad = data.toBatchLoad;
6869
if ( toBatchLoad == null ) {
6970
toBatchLoad = data.toBatchLoad = new HashMap<>();
7071
}
@@ -96,11 +97,11 @@ public ParentInfo(Object parentInstance, int propertyIndex) {
9697
@Override
9798
public void endLoading(BatchEntitySelectFetchInitializerData data) {
9899
super.endLoading( data );
99-
final HashMap<EntityKey, List<ParentInfo>> toBatchLoad = data.toBatchLoad;
100+
final var toBatchLoad = data.toBatchLoad;
100101
if ( toBatchLoad != null ) {
101-
final SharedSessionContractImplementor session = data.getRowProcessingState().getSession();
102-
final PersistenceContext persistenceContext = session.getPersistenceContextInternal();
103-
for ( Map.Entry<EntityKey, List<ParentInfo>> entry : toBatchLoad.entrySet() ) {
102+
final var session = data.getRowProcessingState().getSession();
103+
final var persistenceContext = session.getPersistenceContextInternal();
104+
for ( var entry : toBatchLoad.entrySet() ) {
104105
final EntityKey entityKey = entry.getKey();
105106
final List<ParentInfo> parentInfos = entry.getValue();
106107
final Object instance = loadInstance( entityKey, toOneMapping, affectedByFilter, session );
@@ -110,10 +111,8 @@ public void endLoading(BatchEntitySelectFetchInitializerData data) {
110111
referencedModelPartSetter.set( parentInstance, instance );
111112
final Object[] loadedState = entityEntry.getLoadedState();
112113
if ( loadedState != null ) {
113-
loadedState[parentInfo.propertyIndex] = referencedModelPartType.deepCopy(
114-
instance,
115-
session.getFactory()
116-
);
114+
loadedState[parentInfo.propertyIndex] =
115+
referencedModelPartType.deepCopy( instance, session.getFactory() );
117116
}
118117
}
119118
}
@@ -123,7 +122,7 @@ public void endLoading(BatchEntitySelectFetchInitializerData data) {
123122

124123
@Override
125124
public String toString() {
126-
return "BatchEntitySelectFetchInitializer(" + LoggingHelper.toLoggableString( getNavigablePath() ) + ")";
125+
return "BatchEntitySelectFetchInitializer(" + toLoggableString( getNavigablePath() ) + ")";
127126
}
128127

129128
}

hibernate-core/src/main/java/org/hibernate/sql/results/graph/entity/internal/BatchInitializeEntitySelectFetchInitializer.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import java.util.HashSet;
88

99
import org.hibernate.engine.spi.EntityKey;
10-
import org.hibernate.engine.spi.SharedSessionContractImplementor;
1110
import org.hibernate.internal.log.LoggingHelper;
1211
import org.hibernate.metamodel.mapping.internal.ToOneAttributeMapping;
1312
import org.hibernate.persister.entity.EntityPersister;
@@ -24,7 +23,8 @@
2423
*/
2524
public class BatchInitializeEntitySelectFetchInitializer extends AbstractBatchEntitySelectFetchInitializer<BatchInitializeEntitySelectFetchInitializer.BatchInitializeEntitySelectFetchInitializerData> {
2625

27-
public static class BatchInitializeEntitySelectFetchInitializerData extends AbstractBatchEntitySelectFetchInitializerData {
26+
public static class BatchInitializeEntitySelectFetchInitializerData
27+
extends AbstractBatchEntitySelectFetchInitializerData {
2828
private HashSet<EntityKey> toBatchLoad;
2929

3030
public BatchInitializeEntitySelectFetchInitializerData(
@@ -65,7 +65,7 @@ protected void registerToBatchFetchQueue(BatchInitializeEntitySelectFetchInitial
6565
false,
6666
false
6767
) );
68-
HashSet<EntityKey> toBatchLoad = data.toBatchLoad;
68+
var toBatchLoad = data.toBatchLoad;
6969
if ( toBatchLoad == null ) {
7070
toBatchLoad = data.toBatchLoad = new HashSet<>();
7171
}
@@ -75,9 +75,9 @@ protected void registerToBatchFetchQueue(BatchInitializeEntitySelectFetchInitial
7575
@Override
7676
public void endLoading(BatchInitializeEntitySelectFetchInitializerData data) {
7777
super.endLoading( data );
78-
final HashSet<EntityKey> toBatchLoad = data.toBatchLoad;
78+
final var toBatchLoad = data.toBatchLoad;
7979
if ( toBatchLoad != null ) {
80-
final SharedSessionContractImplementor session = data.getRowProcessingState().getSession();
80+
final var session = data.getRowProcessingState().getSession();
8181
for ( EntityKey key : toBatchLoad ) {
8282
loadInstance( key, toOneMapping, affectedByFilter, session );
8383
}

hibernate-core/src/main/java/org/hibernate/sql/results/graph/entity/internal/DiscriminatedEntityInitializer.java

Lines changed: 12 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,6 @@
99
import org.hibernate.Hibernate;
1010
import org.hibernate.engine.spi.EntityHolder;
1111
import org.hibernate.engine.spi.EntityKey;
12-
import org.hibernate.engine.spi.PersistenceContext;
13-
import org.hibernate.engine.spi.SharedSessionContractImplementor;
14-
import org.hibernate.internal.log.LoggingHelper;
1512
import org.hibernate.metamodel.mapping.AttributeMapping;
1613
import org.hibernate.metamodel.mapping.DiscriminatedAssociationModelPart;
1714
import org.hibernate.metamodel.mapping.ModelPart;
@@ -30,6 +27,7 @@
3027

3128
import org.checkerframework.checker.nullness.qual.Nullable;
3229

30+
import static org.hibernate.internal.log.LoggingHelper.toLoggableString;
3331
import static org.hibernate.proxy.HibernateProxy.extractLazyInitializer;
3432

3533
/**
@@ -79,14 +77,10 @@ public DiscriminatedEntityInitializer(
7977
this.eager = eager;
8078
this.resultInitializer = resultInitializer;
8179
final Initializer<?> initializer = keyValueAssembler.getInitializer();
82-
if ( initializer == null ) {
83-
this.keyIsEager = false;
84-
this.hasLazySubInitializer = false;
85-
}
86-
else {
87-
this.keyIsEager = initializer.isEager();
88-
this.hasLazySubInitializer = !initializer.isEager() || initializer.hasLazySubInitializers();
89-
}
80+
this.keyIsEager = initializer != null && initializer.isEager();
81+
this.hasLazySubInitializer =
82+
initializer != null
83+
&& ( !initializer.isEager() || initializer.hasLazySubInitializers() );
9084
}
9185

9286
@Override
@@ -116,7 +110,7 @@ public void resolveKey(DiscriminatedEntityInitializerData data) {
116110

117111
// resolve the key and the discriminator, and then use those to load the indicated entity
118112

119-
final RowProcessingState rowProcessingState = data.getRowProcessingState();
113+
final var rowProcessingState = data.getRowProcessingState();
120114
final Object discriminatorValue = discriminatorValueAssembler.assemble( rowProcessingState );
121115

122116
if ( discriminatorValue == null ) {
@@ -136,7 +130,7 @@ public void resolveKey(DiscriminatedEntityInitializerData data) {
136130

137131
@Override
138132
public void resolveState(DiscriminatedEntityInitializerData data) {
139-
final RowProcessingState rowProcessingState = data.getRowProcessingState();
133+
final var rowProcessingState = data.getRowProcessingState();
140134
discriminatorValueAssembler.resolveState( rowProcessingState );
141135
keyValueAssembler.resolveState( rowProcessingState );
142136
}
@@ -165,10 +159,10 @@ public void resolveInstance(DiscriminatedEntityInitializerData data) {
165159

166160
data.setState( State.INITIALIZED );
167161

168-
final SharedSessionContractImplementor session = data.getRowProcessingState().getSession();
162+
final var session = data.getRowProcessingState().getSession();
169163
final EntityKey entityKey = new EntityKey( data.entityIdentifier, data.concreteDescriptor );
170164

171-
final PersistenceContext persistenceContext = session.getPersistenceContextInternal();
165+
final var persistenceContext = session.getPersistenceContextInternal();
172166
final EntityHolder holder = persistenceContext.getEntityHolder( entityKey );
173167
if ( holder != null ) {
174168
final Object instance = holder.getEntity();
@@ -207,12 +201,12 @@ public void resolveInstance(Object instance, DiscriminatedEntityInitializerData
207201
data.setInstance( null );
208202
}
209203
else {
210-
final RowProcessingState rowProcessingState = data.getRowProcessingState();
204+
final var rowProcessingState = data.getRowProcessingState();
211205
final LazyInitializer lazyInitializer = extractLazyInitializer( instance );
212206
if ( lazyInitializer == null ) {
213207
data.setState( State.INITIALIZED );
214208
if ( keyIsEager ) {
215-
final SharedSessionContractImplementor session = rowProcessingState.getSession();
209+
final var session = rowProcessingState.getSession();
216210
data.concreteDescriptor = session.getEntityPersister( null, instance );
217211
data.entityIdentifier = data.concreteDescriptor.getIdentifier( instance, session );
218212
}
@@ -331,7 +325,7 @@ public boolean isResultInitializer() {
331325

332326
@Override
333327
public String toString() {
334-
return "DiscriminatedEntityInitializer(" + LoggingHelper.toLoggableString( getNavigablePath() ) + ")";
328+
return "DiscriminatedEntityInitializer(" + toLoggableString( getNavigablePath() ) + ")";
335329
}
336330

337331
}

0 commit comments

Comments
 (0)