Skip to content

Commit 2813486

Browse files
committed
remove lots of unnecessary calls to getRuntimeMetamodels()
I completely understand the desire to not go to the SessionFactoryImplementor for everything, and I'm totally onboard with that, but this isn't actually helping at all (if there ever came a time when we needed to, we can inline those convenience methods completely *trivially*). If we want to actually not depend on the SFI, we need to start passing RuntimeMetamodelsImplementor around instead. That would be *awesome* but it's probably a lot more work. For now the value of the convenience methods is clear, it seems to me.
1 parent 2351f5a commit 2813486

File tree

48 files changed

+170
-220
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+170
-220
lines changed

hibernate-core/src/main/java/org/hibernate/action/internal/BulkOperationCleanupAction.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ public BulkOperationCleanupAction(SharedSessionContractImplementor session, Enti
111111
public BulkOperationCleanupAction(SharedSessionContractImplementor session, Set<String> tableSpaces) {
112112
final LinkedHashSet<String> spacesList = new LinkedHashSet<>( tableSpaces );
113113

114-
final MappingMetamodelImplementor metamodel = session.getFactory().getRuntimeMetamodels().getMappingMetamodel();
114+
final MappingMetamodelImplementor metamodel = session.getFactory().getMappingMetamodel();
115115
metamodel.forEachEntityDescriptor( (entityDescriptor) -> {
116116
final String[] entitySpaces = (String[]) entityDescriptor.getQuerySpaces();
117117
if ( affectedEntity( tableSpaces, entitySpaces ) ) {
@@ -143,7 +143,7 @@ public BulkOperationCleanupAction(SharedSessionContractImplementor session, Set<
143143

144144
public static void schedule(SharedSessionContractImplementor session, SqmDmlStatement<?> statement) {
145145
final List<EntityPersister> entityPersisters = new ArrayList<>( 1 );
146-
final MappingMetamodelImplementor metamodel = session.getFactory().getRuntimeMetamodels().getMappingMetamodel();
146+
final MappingMetamodelImplementor metamodel = session.getFactory().getMappingMetamodel();
147147
if ( !( statement instanceof InsertSelectStatement ) ) {
148148
entityPersisters.add( metamodel.getEntityDescriptor( statement.getTarget().getEntityName() ) );
149149
}

hibernate-core/src/main/java/org/hibernate/action/internal/UnresolvedEntityInsertActions.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -130,11 +130,10 @@ private void logCannotResolveNonNullableTransientDependencies(SharedSessionContr
130130
for ( Map.Entry<Object,Set<AbstractEntityInsertAction>> entry : dependentActionsByTransientEntity.entrySet() ) {
131131
final Object transientEntity = entry.getKey();
132132
final String transientEntityName = session.guessEntityName( transientEntity );
133-
final Object transientEntityId = session.getFactory()
134-
.getRuntimeMetamodels()
135-
.getMappingMetamodel()
136-
.getEntityDescriptor( transientEntityName )
137-
.getIdentifier( transientEntity, session );
133+
final Object transientEntityId =
134+
session.getFactory().getMappingMetamodel()
135+
.getEntityDescriptor( transientEntityName )
136+
.getIdentifier( transientEntity, session );
138137
final String transientEntityString = infoString( transientEntityName, transientEntityId );
139138
final Set<String> dependentEntityStrings = new TreeSet<>();
140139
final Set<String> nonNullableTransientPropertyPaths = new TreeSet<>();

hibernate-core/src/main/java/org/hibernate/cache/internal/CollectionCacheInvalidator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ private void evictCache(Object entity, EntityPersister persister, EventSource se
9898
try {
9999
SessionFactoryImplementor factory = persister.getFactory();
100100

101-
final MappingMetamodelImplementor metamodel = factory.getRuntimeMetamodels().getMappingMetamodel();
101+
final MappingMetamodelImplementor metamodel = factory.getMappingMetamodel();
102102
Set<String> collectionRoles = metamodel.getCollectionRolesByEntityParticipant( persister.getEntityName() );
103103
if ( collectionRoles == null || collectionRoles.isEmpty() ) {
104104
return;

hibernate-core/src/main/java/org/hibernate/cache/internal/EnabledCaching.java

Lines changed: 22 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@
3737
import org.hibernate.internal.CoreMessageLogger;
3838
import org.hibernate.internal.util.StringHelper;
3939
import org.hibernate.metamodel.model.domain.NavigableRole;
40-
import org.hibernate.metamodel.spi.MappingMetamodelImplementor;
4140
import org.hibernate.persister.collection.CollectionPersister;
4241
import org.hibernate.persister.entity.EntityPersister;
4342
import org.hibernate.pretty.MessageHelper;
@@ -227,10 +226,9 @@ public boolean containsEntity(Class<?> entityClass, Object identifier) {
227226

228227
@Override
229228
public boolean containsEntity(String entityName, Object identifier) {
230-
final EntityPersister entityDescriptor = sessionFactory
231-
.getRuntimeMetamodels()
232-
.getMappingMetamodel()
233-
.getEntityDescriptor( entityName );
229+
final EntityPersister entityDescriptor =
230+
sessionFactory.getMappingMetamodel()
231+
.getEntityDescriptor( entityName );
234232
final EntityDataAccess cacheAccess = entityDescriptor.getCacheAccessStrategy();
235233
if ( cacheAccess == null ) {
236234
return false;
@@ -256,10 +254,9 @@ public void evictEntityData(Class<?> entityClass, Object identifier) {
256254

257255
@Override
258256
public void evictEntityData(String entityName, Object identifier) {
259-
final EntityPersister entityDescriptor = sessionFactory
260-
.getRuntimeMetamodels()
261-
.getMappingMetamodel()
262-
.getEntityDescriptor( entityName );
257+
final EntityPersister entityDescriptor =
258+
sessionFactory.getMappingMetamodel()
259+
.getEntityDescriptor( entityName );
263260
final EntityDataAccess cacheAccess = entityDescriptor.getCacheAccessStrategy();
264261
if ( cacheAccess == null ) {
265262
return;
@@ -283,10 +280,9 @@ public void evictEntityData(Class<?> entityClass) {
283280

284281
@Override
285282
public void evictEntityData(String entityName) {
286-
final EntityPersister entityDescriptor = sessionFactory
287-
.getRuntimeMetamodels()
288-
.getMappingMetamodel()
289-
.getEntityDescriptor( entityName );
283+
final EntityPersister entityDescriptor =
284+
sessionFactory.getMappingMetamodel()
285+
.getEntityDescriptor( entityName );
290286
evictEntityData( entityDescriptor );
291287
}
292288

@@ -317,10 +313,7 @@ private void evictEntityData(NavigableRole navigableRole, EntityDataAccess cache
317313

318314
@Override
319315
public void evictEntityData() {
320-
final MappingMetamodelImplementor mappingMetamodel = sessionFactory
321-
.getRuntimeMetamodels()
322-
.getMappingMetamodel();
323-
mappingMetamodel.forEachEntityDescriptor( this::evictEntityData );
316+
sessionFactory.getMappingMetamodel().forEachEntityDescriptor( this::evictEntityData );
324317
}
325318

326319

@@ -335,10 +328,9 @@ public void evictNaturalIdData(Class<?> entityClass) {
335328

336329
@Override
337330
public void evictNaturalIdData(String entityName) {
338-
final EntityPersister entityDescriptor = sessionFactory
339-
.getRuntimeMetamodels()
340-
.getMappingMetamodel()
341-
.getEntityDescriptor( entityName );
331+
final EntityPersister entityDescriptor =
332+
sessionFactory.getMappingMetamodel()
333+
.getEntityDescriptor( entityName );
342334
evictNaturalIdData( entityDescriptor );
343335
}
344336

@@ -371,10 +363,9 @@ private void evictNaturalIdData(NavigableRole rootEntityRole, NaturalIdDataAcces
371363
@Override
372364
public boolean containsCollection(String role, Object ownerIdentifier) {
373365

374-
final CollectionPersister collectionDescriptor = sessionFactory
375-
.getRuntimeMetamodels()
376-
.getMappingMetamodel()
377-
.getCollectionDescriptor( role );
366+
final CollectionPersister collectionDescriptor =
367+
sessionFactory.getMappingMetamodel()
368+
.getCollectionDescriptor( role );
378369

379370
final CollectionDataAccess cacheAccess = collectionDescriptor.getCacheAccessStrategy();
380371
if ( cacheAccess == null ) {
@@ -387,10 +378,9 @@ public boolean containsCollection(String role, Object ownerIdentifier) {
387378

388379
@Override
389380
public void evictCollectionData(String role, Object ownerIdentifier) {
390-
final CollectionPersister collectionDescriptor = sessionFactory
391-
.getRuntimeMetamodels()
392-
.getMappingMetamodel()
393-
.getCollectionDescriptor( role );
381+
final CollectionPersister collectionDescriptor =
382+
sessionFactory.getMappingMetamodel()
383+
.getCollectionDescriptor( role );
394384

395385
final CollectionDataAccess cacheAccess = collectionDescriptor.getCacheAccessStrategy();
396386
if ( cacheAccess == null ) {
@@ -410,10 +400,9 @@ public void evictCollectionData(String role, Object ownerIdentifier) {
410400

411401
@Override
412402
public void evictCollectionData(String role) {
413-
final CollectionPersister collectionDescriptor = sessionFactory
414-
.getRuntimeMetamodels()
415-
.getMappingMetamodel()
416-
.getCollectionDescriptor( role );
403+
final CollectionPersister collectionDescriptor =
404+
sessionFactory.getMappingMetamodel()
405+
.getCollectionDescriptor( role );
417406

418407
evictCollectionData( collectionDescriptor );
419408
}

hibernate-core/src/main/java/org/hibernate/cache/spi/entry/StructuredCacheEntry.java

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -34,35 +34,26 @@ public StructuredCacheEntry(EntityPersister persister) {
3434
}
3535

3636
@Override
37-
@SuppressWarnings("unchecked")
3837
public Object destructure(Object structured, SessionFactoryImplementor factory) {
39-
final Map map = (Map) structured;
38+
final var map = (Map<?,?>) structured;
4039
final String subclass = (String) map.get( SUBCLASS_KEY );
4140
final Object version = map.get( VERSION_KEY );
42-
43-
final EntityPersister subclassPersister = factory
44-
.getRuntimeMetamodels()
45-
.getMappingMetamodel()
46-
.getEntityDescriptor( subclass );
47-
48-
final String[] names = subclassPersister.getPropertyNames();
41+
final String[] names =
42+
factory.getMappingMetamodel()
43+
.getEntityDescriptor( subclass )
44+
.getPropertyNames();
4945
final Serializable[] disassembledState = new Serializable[names.length];
5046
for ( int i = 0; i < names.length; i++ ) {
5147
disassembledState[i] = (Serializable) map.get( names[i] );
5248
}
53-
return new StandardCacheEntryImpl(
54-
disassembledState,
55-
subclass,
56-
version
57-
);
49+
return new StandardCacheEntryImpl( disassembledState, subclass, version );
5850
}
5951

6052
@Override
61-
@SuppressWarnings("unchecked")
6253
public Object structure(Object item) {
6354
final CacheEntry entry = (CacheEntry) item;
6455
final String[] names = persister.getPropertyNames();
65-
final Map map = new HashMap( names.length + 3, 1f );
56+
final Map<String,Object> map = new HashMap<>( names.length + 3, 1f );
6657
map.put( SUBCLASS_KEY, entry.getSubclass() );
6758
map.put( VERSION_KEY, entry.getVersion() );
6859
for ( int i=0; i<names.length; i++ ) {

hibernate-core/src/main/java/org/hibernate/engine/internal/AbstractEntityEntry.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,8 +148,7 @@ protected AbstractEntityEntry(
148148
final PersistenceContext persistenceContext) {
149149
this.persister = factory == null
150150
? null
151-
: factory.getRuntimeMetamodels().getMappingMetamodel()
152-
.getEntityDescriptor( entityName );
151+
: factory.getMappingMetamodel().getEntityDescriptor( entityName );
153152
this.id = id;
154153
setCompressedValue( STATUS, status );
155154
setCompressedValue( PREVIOUS_STATUS, previousStatus );

hibernate-core/src/main/java/org/hibernate/engine/internal/StatefulPersistenceContext.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1471,9 +1471,7 @@ public Entry<Object,EntityEntry>[] reentrantSafeEntityEntries() {
14711471
public Object getOwnerId(String entityName, String propertyName, Object childEntity, Map mergeMap) {
14721472
final String collectionRole = entityName + '.' + propertyName;
14731473

1474-
final MappingMetamodelImplementor mappingMetamodel = session.getFactory()
1475-
.getRuntimeMetamodels()
1476-
.getMappingMetamodel();
1474+
final MappingMetamodelImplementor mappingMetamodel = session.getFactory().getMappingMetamodel();
14771475
final EntityPersister persister = mappingMetamodel.getEntityDescriptor( entityName );
14781476
final CollectionPersister collectionPersister = mappingMetamodel.getCollectionDescriptor( collectionRole );
14791477

@@ -1601,7 +1599,7 @@ private boolean isFoundInParent(
16011599

16021600
@Override
16031601
public Object getIndexInOwner(String entity, String property, Object childEntity, Map mergeMap) {
1604-
final MappingMetamodelImplementor metamodel = session.getFactory().getRuntimeMetamodels().getMappingMetamodel();
1602+
final MappingMetamodelImplementor metamodel = session.getFactory().getMappingMetamodel();
16051603
final EntityPersister persister = metamodel.getEntityDescriptor( entity );
16061604
final CollectionPersister cp = metamodel.getCollectionDescriptor( entity + '.' + property );
16071605

hibernate-core/src/main/java/org/hibernate/engine/spi/CollectionEntry.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ private void setLoadedPersister(@Nullable CollectionPersister persister) {
281281

282282
void afterDeserialize(@Nullable SessionFactoryImplementor factory) {
283283
loadedPersister = factory == null ? null
284-
: factory.getRuntimeMetamodels().getMappingMetamodel()
284+
: factory.getMappingMetamodel()
285285
.getCollectionDescriptor( castNonNull( role ) );
286286
}
287287

hibernate-core/src/main/java/org/hibernate/engine/spi/CollectionKey.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,12 @@
1111

1212
import org.hibernate.AssertionFailure;
1313
import org.hibernate.persister.collection.CollectionPersister;
14-
import org.hibernate.pretty.MessageHelper;
1514
import org.hibernate.type.Type;
1615

1716
import org.checkerframework.checker.nullness.qual.Nullable;
1817

18+
import static org.hibernate.pretty.MessageHelper.collectionInfoString;
19+
1920
/**
2021
* Uniquely identifies a collection instance in a particular session.
2122
*
@@ -70,10 +71,10 @@ public Object getKey() {
7071

7172
@Override
7273
public String toString() {
73-
final CollectionPersister collectionDescriptor = factory.getRuntimeMetamodels()
74-
.getMappingMetamodel()
75-
.getCollectionDescriptor( role );
76-
return "CollectionKey" + MessageHelper.collectionInfoString( collectionDescriptor, key, factory );
74+
final CollectionPersister collectionDescriptor =
75+
factory.getMappingMetamodel()
76+
.getCollectionDescriptor( role );
77+
return "CollectionKey" + collectionInfoString( collectionDescriptor, key, factory );
7778
}
7879

7980
@Override

hibernate-core/src/main/java/org/hibernate/engine/spi/EntityKey.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -148,10 +148,9 @@ public void serialize(ObjectOutputStream oos) throws IOException {
148148
public static EntityKey deserialize(ObjectInputStream ois, SessionFactoryImplementor sessionFactory) throws IOException, ClassNotFoundException {
149149
final Object id = ois.readObject();
150150
final String entityName = (String) ois.readObject();
151-
final EntityPersister entityPersister = sessionFactory
152-
.getRuntimeMetamodels()
153-
.getMappingMetamodel()
154-
.getEntityDescriptor( entityName);
151+
final EntityPersister entityPersister =
152+
sessionFactory.getMappingMetamodel()
153+
.getEntityDescriptor( entityName);
155154
return new EntityKey( id, entityPersister );
156155
}
157156
}

0 commit comments

Comments
 (0)