Skip to content

Commit d9e8a69

Browse files
committed
HHH-18457 Remove deprecated org.hibernate.Metamodel and org.hibernate.metamodel.spi.MetamodelImplementor
1 parent de49475 commit d9e8a69

File tree

17 files changed

+96
-286
lines changed

17 files changed

+96
-286
lines changed

hibernate-core/src/main/java/org/hibernate/Metamodel.java

Lines changed: 0 additions & 32 deletions
This file was deleted.

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@
4040
import org.hibernate.event.spi.EventEngine;
4141
import org.hibernate.graph.spi.RootGraphImplementor;
4242
import org.hibernate.internal.FastSessionServices;
43+
import org.hibernate.metamodel.MappingMetamodel;
4344
import org.hibernate.metamodel.model.domain.JpaMetamodel;
44-
import org.hibernate.metamodel.spi.MetamodelImplementor;
4545
import org.hibernate.metamodel.spi.RuntimeMetamodelsImplementor;
4646
import org.hibernate.proxy.EntityNotFoundDelegate;
4747
import org.hibernate.query.BindableType;
@@ -375,8 +375,8 @@ public HibernateCriteriaBuilder getCriteriaBuilder() {
375375
}
376376

377377
@Override @Deprecated
378-
public MetamodelImplementor getMetamodel() {
379-
return delegate.getMetamodel();
378+
public MappingMetamodel getMetamodel() {
379+
return (MappingMetamodel) delegate.getMetamodel();
380380
}
381381

382382
@Override

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

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import org.hibernate.graph.spi.RootGraphImplementor;
2323
import org.hibernate.internal.FastSessionServices;
2424
import org.hibernate.metamodel.spi.MappingMetamodelImplementor;
25-
import org.hibernate.metamodel.spi.MetamodelImplementor;
2625
import org.hibernate.metamodel.spi.RuntimeMetamodelsImplementor;
2726
import org.hibernate.proxy.EntityNotFoundDelegate;
2827
import org.hibernate.query.spi.QueryParameterBindingTypeResolver;
@@ -181,12 +180,4 @@ default MappingMetamodelImplementor getMappingMetamodel() {
181180
*/
182181
String bestGuessEntityName(Object object);
183182

184-
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
185-
// Deprecations
186-
187-
/**
188-
* @deprecated no longer for internal use, use {@link #getMappingMetamodel()} or {@link #getJpaMetamodel()}
189-
*/
190-
@Override @Deprecated
191-
MetamodelImplementor getMetamodel();
192183
}

hibernate-core/src/main/java/org/hibernate/internal/SessionFactoryImpl.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,12 +79,12 @@
7979
import org.hibernate.mapping.PersistentClass;
8080
import org.hibernate.mapping.RootClass;
8181
import org.hibernate.mapping.SimpleValue;
82+
import org.hibernate.metamodel.MappingMetamodel;
8283
import org.hibernate.metamodel.internal.RuntimeMetamodelsImpl;
8384
import org.hibernate.metamodel.mapping.JdbcMapping;
8485
import org.hibernate.metamodel.model.domain.internal.MappingMetamodelImpl;
8586
import org.hibernate.metamodel.model.domain.spi.JpaMetamodelImplementor;
8687
import org.hibernate.metamodel.spi.MappingMetamodelImplementor;
87-
import org.hibernate.metamodel.spi.MetamodelImplementor;
8888
import org.hibernate.metamodel.spi.RuntimeMetamodelsImplementor;
8989
import org.hibernate.metamodel.spi.RuntimeModelCreationContext;
9090
import org.hibernate.persister.entity.SessionFactoryBasedWrapperOptions;
@@ -759,10 +759,10 @@ public NodeBuilder getCriteriaBuilder() {
759759
return queryEngine.getCriteriaBuilder();
760760
}
761761

762-
@Override @Deprecated
763-
public MetamodelImplementor getMetamodel() {
762+
@Override
763+
public MappingMetamodel getMetamodel() {
764764
validateNotClosed();
765-
return (MetamodelImplementor) runtimeMetamodels.getMappingMetamodel();
765+
return runtimeMetamodels.getMappingMetamodel();
766766
}
767767

768768
@Override
@@ -879,7 +879,7 @@ public void close() throws HibernateException {
879879
}
880880
}
881881
);
882-
// ( (MappingMetamodelImpl) runtimeMetamodels.getMappingMetamodel() ).close();
882+
runtimeMetamodels.getMappingMetamodel().close();
883883
}
884884

885885
if ( queryEngine != null ) {

hibernate-core/src/main/java/org/hibernate/metamodel/MappingMetamodel.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,15 @@
2626
import org.hibernate.sql.ast.tree.from.TableGroup;
2727
import org.hibernate.type.spi.TypeConfiguration;
2828

29+
import jakarta.persistence.metamodel.Metamodel;
30+
2931
/**
3032
* Access to information about the runtime relational O/R mapping model.
3133
*
3234
* @author Steve Ebersole
3335
*/
3436
@Incubating
35-
public interface MappingMetamodel {
37+
public interface MappingMetamodel extends Metamodel {
3638
/**
3739
* The {@link TypeConfiguration} this metamodel is associated with
3840
*/

hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/internal/MappingMetamodelImpl.java

Lines changed: 35 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,13 @@
4949
import org.hibernate.metamodel.model.domain.BasicDomainType;
5050
import org.hibernate.metamodel.model.domain.EmbeddableDomainType;
5151
import org.hibernate.metamodel.model.domain.EntityDomainType;
52+
import org.hibernate.metamodel.model.domain.JpaMetamodel;
5253
import org.hibernate.metamodel.model.domain.ManagedDomainType;
5354
import org.hibernate.metamodel.model.domain.NavigableRole;
5455
import org.hibernate.metamodel.model.domain.TupleType;
5556
import org.hibernate.metamodel.model.domain.spi.JpaMetamodelImplementor;
5657
import org.hibernate.metamodel.spi.EntityRepresentationStrategy;
5758
import org.hibernate.metamodel.spi.MappingMetamodelImplementor;
58-
import org.hibernate.metamodel.spi.MetamodelImplementor;
5959
import org.hibernate.metamodel.spi.RuntimeModelCreationContext;
6060
import org.hibernate.persister.collection.CollectionPersister;
6161
import org.hibernate.persister.entity.EntityPersister;
@@ -80,6 +80,7 @@
8080
import jakarta.persistence.metamodel.EmbeddableType;
8181
import jakarta.persistence.metamodel.EntityType;
8282
import jakarta.persistence.metamodel.ManagedType;
83+
import jakarta.persistence.metamodel.Metamodel;
8384

8485
import static org.hibernate.internal.util.collections.ArrayHelper.EMPTY_STRING_ARRAY;
8586
import static org.hibernate.metamodel.internal.JpaMetaModelPopulationSetting.determineJpaMetaModelPopulationSetting;
@@ -96,7 +97,7 @@
9697
* @author Andrea Boriero
9798
*/
9899
public class MappingMetamodelImpl extends QueryParameterBindingTypeResolverImpl
99-
implements MappingMetamodelImplementor, MetamodelImplementor, Serializable {
100+
implements MappingMetamodelImplementor,JpaMetamodel, Metamodel, Serializable {
100101
// todo : Integrate EntityManagerLogger into CoreMessageLogger
101102
private static final CoreMessageLogger log = CoreLogging.messageLogger( MappingMetamodelImpl.class );
102103

@@ -348,11 +349,6 @@ private static void registerEntityNameResolvers(
348349
representationStrategy.visitEntityNameResolvers( entityNameResolvers::add );
349350
}
350351

351-
@Override @SuppressWarnings("deprecation")
352-
public java.util.Collection<EntityNameResolver> getEntityNameResolvers() {
353-
return entityNameResolvers;
354-
}
355-
356352
@Override
357353
public TypeConfiguration getTypeConfiguration() {
358354
return jpaMetamodel.getTypeConfiguration();
@@ -363,7 +359,6 @@ public MappingMetamodel getMappingMetamodel() {
363359
return this;
364360
}
365361

366-
@Override
367362
public ServiceRegistry getServiceRegistry() {
368363
return jpaMetamodel.getServiceRegistry();
369364
}
@@ -547,7 +542,6 @@ public <E extends Enum<E>> E enumValue(EnumJavaType<E> enumType, String enumValu
547542
return jpaMetamodel.enumValue( enumType, enumValueName );
548543
}
549544

550-
@Override
551545
public String[] getImplementors(String className) throws MappingException {
552546
// computeIfAbsent() can be a contention point and we expect all the values to be in the map at some point so
553547
// let's do an optimistic check first
@@ -574,38 +568,7 @@ public String[] getImplementors(String className) throws MappingException {
574568
}
575569
}
576570

577-
@Override @SuppressWarnings("deprecation")
578-
public Map<String, EntityPersister> entityPersisters() {
579-
return entityPersisterMap.convertToMap();
580-
}
581-
582-
@Override @SuppressWarnings("deprecation")
583-
public CollectionPersister collectionPersister(String role) {
584-
final CollectionPersister persister = collectionPersisterMap.get( role );
585-
if ( persister == null ) {
586-
throw new MappingException( "Could not locate CollectionPersister for role : " + role );
587-
}
588-
return persister;
589-
}
590-
591-
@Override @SuppressWarnings("deprecation")
592-
public Map<String, CollectionPersister> collectionPersisters() {
593-
return collectionPersisterMap;
594-
}
595-
596-
@Override @SuppressWarnings("deprecation")
597-
public EntityPersister entityPersister(Class<?> entityClass) {
598-
return getEntityDescriptor( entityClass.getName() );
599-
}
600571

601-
@Override @SuppressWarnings("deprecation")
602-
public EntityPersister entityPersister(String entityName) throws MappingException {
603-
final EntityPersister result = entityPersisterMap.get( entityName );
604-
if ( result == null ) {
605-
throw new MappingException( "Unknown entity: " + entityName );
606-
}
607-
return result;
608-
}
609572

610573
@Override
611574
public EntityPersister locateEntityPersister(String byName) {
@@ -656,21 +619,6 @@ public CollectionPersister findCollectionDescriptor(String role) {
656619
return collectionPersisterMap.get( role );
657620
}
658621

659-
@Override @SuppressWarnings("deprecation")
660-
public Set<String> getCollectionRolesByEntityParticipant(String entityName) {
661-
return collectionRolesByEntityParticipant.get( entityName );
662-
}
663-
664-
@Override
665-
public String[] getAllEntityNames() {
666-
return entityPersisterMap.keys();
667-
}
668-
669-
@Override
670-
public String[] getAllCollectionRoles() {
671-
return ArrayHelper.toStringArray( collectionPersisterMap.keySet() );
672-
}
673-
674622
@Override
675623
public <T> void addNamedEntityGraph(String graphName, RootGraphImplementor<T> entityGraph) {
676624
jpaMetamodel.addNamedEntityGraph( graphName, entityGraph );
@@ -743,18 +691,18 @@ public List<RootGraph<?>> findRootGraphsForType(EntityPersister baseEntityDescri
743691

744692
private String[] doGetImplementors(Class<?> clazz) throws MappingException {
745693
final ArrayList<String> results = new ArrayList<>();
746-
for ( EntityPersister checkPersister : entityPersisters().values() ) {
747-
final String checkQueryableEntityName = ((EntityMappingType) checkPersister).getEntityName();
694+
forEachEntityDescriptor( descriptor -> {
695+
final String checkQueryableEntityName = ((EntityMappingType) descriptor).getEntityName();
748696
final boolean isMappedClass = clazz.getName().equals( checkQueryableEntityName );
749697
if ( isMappedClass ) {
750698
results.add( checkQueryableEntityName );
751699
}
752700
else {
753-
final Class<?> mappedClass = checkPersister.getMappedClass();
701+
final Class<?> mappedClass = descriptor.getMappedClass();
754702
if ( mappedClass != null && clazz.isAssignableFrom( mappedClass ) ) {
755703
final boolean assignableSuperclass;
756-
if ( checkPersister.isInherited() ) {
757-
final String superTypeName = checkPersister.getSuperMappingType().getEntityName();
704+
if ( descriptor.isInherited() ) {
705+
final String superTypeName = descriptor.getSuperMappingType().getEntityName();
758706
final Class<?> mappedSuperclass = getEntityDescriptor( superTypeName ).getMappedClass();
759707
assignableSuperclass = clazz.isAssignableFrom( mappedSuperclass );
760708
}
@@ -766,8 +714,7 @@ private String[] doGetImplementors(Class<?> clazz) throws MappingException {
766714
}
767715
}
768716
}
769-
}
770-
717+
} );
771718
return results.toArray( EMPTY_STRING_ARRAY );
772719
}
773720

@@ -874,4 +821,30 @@ public <T> BindableType<T> resolveQueryParameterType(Class<T> javaClass) {
874821

875822
return null;
876823
}
824+
825+
@Override
826+
public Set<String> getCollectionRolesByEntityParticipant(String entityName) {
827+
return collectionRolesByEntityParticipant.get( entityName );
828+
829+
}
830+
831+
@Override
832+
public java.util.Collection<EntityNameResolver> getEntityNameResolvers() {
833+
return entityNameResolvers;
834+
}
835+
836+
@Override
837+
public String[] getAllEntityNames() {
838+
return entityPersisterMap.keys();
839+
}
840+
841+
@Override
842+
public String[] getAllCollectionRoles() {
843+
return ArrayHelper.toStringArray( collectionPersisterMap.keySet() );
844+
}
845+
846+
@Override
847+
public void close() {
848+
// anything to do ?
849+
}
877850
}

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

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111

1212
import org.hibernate.EntityNameResolver;
1313
import org.hibernate.metamodel.MappingMetamodel;
14+
import org.hibernate.persister.collection.CollectionPersister;
15+
import org.hibernate.persister.entity.EntityPersister;
1416
import org.hibernate.query.spi.QueryParameterBindingTypeResolver;
1517

1618
/**
@@ -34,4 +36,30 @@ public interface MappingMetamodelImplementor extends MappingMetamodel, QueryPara
3436
*/
3537
Collection<EntityNameResolver> getEntityNameResolvers();
3638

39+
/**
40+
* Get the names of all entities known to this Metamodel
41+
*
42+
* @return All the entity names
43+
*/
44+
default String[] getAllEntityNames() {
45+
return streamEntityDescriptors()
46+
.map( EntityPersister::getEntityName )
47+
.toArray( String[]::new );
48+
}
49+
50+
/**
51+
* Get the names of all collections known to this Metamodel
52+
*
53+
* @return All the entity names
54+
*/
55+
default String[] getAllCollectionRoles(){
56+
return streamCollectionDescriptors()
57+
.map( CollectionPersister::getRole )
58+
.toArray( String[]::new );
59+
}
60+
61+
default void close() {
62+
63+
}
64+
3765
}

0 commit comments

Comments
 (0)