Skip to content

Commit 51f64ab

Browse files
committed
HHH-18854 Remove EntityMetamodelFactory
And move the `createEntityMetamodel` method in `RuntimeModelCreationContext`
1 parent ba3aadd commit 51f64ab

File tree

5 files changed

+14
-69
lines changed

5 files changed

+14
-69
lines changed

hibernate-core/src/main/java/org/hibernate/metamodel/spi/RuntimeModelCreationContext.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,11 @@
1414
import org.hibernate.engine.spi.SessionFactoryImplementor;
1515
import org.hibernate.generator.Generator;
1616
import org.hibernate.mapping.GeneratorSettings;
17+
import org.hibernate.mapping.PersistentClass;
18+
import org.hibernate.persister.entity.EntityPersister;
1719
import org.hibernate.query.sqm.function.SqmFunctionRegistry;
1820
import org.hibernate.service.ServiceRegistry;
21+
import org.hibernate.tuple.entity.EntityMetamodel;
1922
import org.hibernate.type.descriptor.java.spi.JavaTypeRegistry;
2023
import org.hibernate.type.spi.TypeConfiguration;
2124

@@ -64,4 +67,11 @@ default MetadataImplementor getMetadata() {
6467
Map<String, Generator> getGenerators();
6568

6669
GeneratorSettings getGeneratorSettings();
70+
71+
/*
72+
* Used by Hibernate Reactive
73+
*/
74+
default EntityMetamodel createEntityMetamodel(PersistentClass persistentClass, EntityPersister persister) {
75+
return new EntityMetamodel( persistentClass, persister, this );
76+
}
6777
}

hibernate-core/src/main/java/org/hibernate/persister/entity/AbstractEntityPersister.java

Lines changed: 1 addition & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -469,38 +469,11 @@ public abstract class AbstractEntityPersister
469469
private List<UniqueKeyEntry> uniqueKeyEntries = null; //lazily initialized
470470
private ConcurrentHashMap<String,SingleIdArrayLoadPlan> nonLazyPropertyLoadPlansByName;
471471

472-
/**
473-
* A factory for the creation of an EntityMetamodel.
474-
* <p>
475-
* Hibernate Reactive uses it to pass its own entity metamodel class
476-
* and adapt the identifier generators.
477-
*/
478-
public static class EntityMetamodelFactory {
479-
public EntityMetamodel createEntityMetamodel(
480-
PersistentClass persistentClass,
481-
EntityPersister persister,
482-
RuntimeModelCreationContext creationContext) {
483-
return new EntityMetamodel( persistentClass, persister, creationContext );
484-
}
485-
}
486-
487472
public AbstractEntityPersister(
488473
final PersistentClass persistentClass,
489474
final EntityDataAccess cacheAccessStrategy,
490475
final NaturalIdDataAccess naturalIdRegionAccessStrategy,
491476
final RuntimeModelCreationContext creationContext) throws HibernateException {
492-
this( persistentClass, cacheAccessStrategy, naturalIdRegionAccessStrategy, creationContext, new EntityMetamodelFactory() );
493-
}
494-
495-
/*
496-
* Used by Hibernate Reactive
497-
*/
498-
public AbstractEntityPersister(
499-
final PersistentClass persistentClass,
500-
final EntityDataAccess cacheAccessStrategy,
501-
final NaturalIdDataAccess naturalIdRegionAccessStrategy,
502-
final RuntimeModelCreationContext creationContext,
503-
final EntityMetamodelFactory entityMetamodelFactory) throws HibernateException {
504477
this.jpaEntityName = persistentClass.getJpaEntityName();
505478

506479
//set it here, but don't call it, since it's still uninitialized!
@@ -527,7 +500,7 @@ public AbstractEntityPersister(
527500
isLazyPropertiesCacheable = true;
528501
}
529502

530-
entityMetamodel = entityMetamodelFactory.createEntityMetamodel( persistentClass, this, creationContext );
503+
entityMetamodel = creationContext.createEntityMetamodel( persistentClass, this );
531504

532505
entityEntryFactory = entityMetamodel.isMutable()
533506
? MutableEntityEntryFactory.INSTANCE

hibernate-core/src/main/java/org/hibernate/persister/entity/JoinedSubclassEntityPersister.java

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -160,20 +160,7 @@ public JoinedSubclassEntityPersister(
160160
final EntityDataAccess cacheAccessStrategy,
161161
final NaturalIdDataAccess naturalIdRegionAccessStrategy,
162162
final RuntimeModelCreationContext creationContext) throws HibernateException {
163-
this( persistentClass, cacheAccessStrategy, naturalIdRegionAccessStrategy, creationContext, new EntityMetamodelFactory());
164-
}
165-
166-
/*
167-
* Used by Hibernate Reactive
168-
*/
169-
public JoinedSubclassEntityPersister(
170-
final PersistentClass persistentClass,
171-
final EntityDataAccess cacheAccessStrategy,
172-
final NaturalIdDataAccess naturalIdRegionAccessStrategy,
173-
final RuntimeModelCreationContext creationContext,
174-
final EntityMetamodelFactory entityMetamodelFactory) throws HibernateException {
175-
176-
super( persistentClass, cacheAccessStrategy, naturalIdRegionAccessStrategy, creationContext, entityMetamodelFactory );
163+
super( persistentClass, cacheAccessStrategy, naturalIdRegionAccessStrategy, creationContext );
177164

178165
final Dialect dialect = creationContext.getDialect();
179166
final SqmFunctionRegistry functionRegistry = creationContext.getFunctionRegistry();

hibernate-core/src/main/java/org/hibernate/persister/entity/SingleTableEntityPersister.java

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -114,20 +114,7 @@ public SingleTableEntityPersister(
114114
final EntityDataAccess cacheAccessStrategy,
115115
final NaturalIdDataAccess naturalIdRegionAccessStrategy,
116116
final RuntimeModelCreationContext creationContext) throws HibernateException {
117-
this( persistentClass, cacheAccessStrategy, naturalIdRegionAccessStrategy, creationContext, new EntityMetamodelFactory() );
118-
}
119-
120-
/*
121-
* Used by Hibernate Reactive
122-
*/
123-
public SingleTableEntityPersister(
124-
final PersistentClass persistentClass,
125-
final EntityDataAccess cacheAccessStrategy,
126-
final NaturalIdDataAccess naturalIdRegionAccessStrategy,
127-
final RuntimeModelCreationContext creationContext,
128-
final EntityMetamodelFactory entityMetamodelFactory) throws HibernateException {
129-
130-
super( persistentClass, cacheAccessStrategy, naturalIdRegionAccessStrategy, creationContext, entityMetamodelFactory );
117+
super( persistentClass, cacheAccessStrategy, naturalIdRegionAccessStrategy, creationContext );
131118

132119
final Dialect dialect = creationContext.getDialect();
133120
final SqmFunctionRegistry functionRegistry = creationContext.getFunctionRegistry();

hibernate-core/src/main/java/org/hibernate/persister/entity/UnionSubclassEntityPersister.java

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -95,19 +95,7 @@ public UnionSubclassEntityPersister(
9595
final EntityDataAccess cacheAccessStrategy,
9696
final NaturalIdDataAccess naturalIdRegionAccessStrategy,
9797
final RuntimeModelCreationContext creationContext) throws HibernateException {
98-
this( persistentClass, cacheAccessStrategy, naturalIdRegionAccessStrategy, creationContext, new EntityMetamodelFactory() );
99-
}
100-
101-
/*
102-
* Used by Hibernate Reactive
103-
*/
104-
public UnionSubclassEntityPersister(
105-
final PersistentClass persistentClass,
106-
final EntityDataAccess cacheAccessStrategy,
107-
final NaturalIdDataAccess naturalIdRegionAccessStrategy,
108-
final RuntimeModelCreationContext creationContext,
109-
final EntityMetamodelFactory entityMetamodelFactory) throws HibernateException {
110-
super( persistentClass, cacheAccessStrategy, naturalIdRegionAccessStrategy, creationContext, entityMetamodelFactory );
98+
super( persistentClass, cacheAccessStrategy, naturalIdRegionAccessStrategy, creationContext );
11199

112100
validateGenerator();
113101

0 commit comments

Comments
 (0)