Skip to content

Commit

Permalink
HHH-18457 Remove deprecated org.hibernate.Metamodel and org.hibernate…
Browse files Browse the repository at this point in the history
….metamodel.spi.MetamodelImplementor
  • Loading branch information
dreab8 committed Sep 26, 2024
1 parent 5b25d09 commit fee9e86
Show file tree
Hide file tree
Showing 17 changed files with 95 additions and 282 deletions.
30 changes: 0 additions & 30 deletions hibernate-core/src/main/java/org/hibernate/Metamodel.java

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,8 @@
import org.hibernate.event.spi.EventEngine;
import org.hibernate.graph.spi.RootGraphImplementor;
import org.hibernate.internal.FastSessionServices;
import org.hibernate.metamodel.MappingMetamodel;
import org.hibernate.metamodel.model.domain.JpaMetamodel;
import org.hibernate.metamodel.spi.MetamodelImplementor;
import org.hibernate.metamodel.spi.RuntimeMetamodelsImplementor;
import org.hibernate.proxy.EntityNotFoundDelegate;
import org.hibernate.query.BindableType;
Expand Down Expand Up @@ -373,8 +373,8 @@ public HibernateCriteriaBuilder getCriteriaBuilder() {
}

@Override @Deprecated
public MetamodelImplementor getMetamodel() {
return delegate.getMetamodel();
public MappingMetamodel getMetamodel() {
return (MappingMetamodel) delegate.getMetamodel();
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
import org.hibernate.graph.spi.RootGraphImplementor;
import org.hibernate.internal.FastSessionServices;
import org.hibernate.metamodel.spi.MappingMetamodelImplementor;
import org.hibernate.metamodel.spi.MetamodelImplementor;
import org.hibernate.metamodel.spi.RuntimeMetamodelsImplementor;
import org.hibernate.proxy.EntityNotFoundDelegate;
import org.hibernate.query.spi.QueryParameterBindingTypeResolver;
Expand Down Expand Up @@ -180,12 +179,4 @@ default MappingMetamodelImplementor getMappingMetamodel() {
*/
String bestGuessEntityName(Object object);

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Deprecations

/**
* @deprecated no longer for internal use, use {@link #getMappingMetamodel()} or {@link #getJpaMetamodel()}
*/
@Override @Deprecated
MetamodelImplementor getMetamodel();
}
Original file line number Diff line number Diff line change
Expand Up @@ -75,12 +75,12 @@
import org.hibernate.mapping.GeneratorSettings;
import org.hibernate.mapping.PersistentClass;
import org.hibernate.mapping.RootClass;
import org.hibernate.metamodel.MappingMetamodel;
import org.hibernate.metamodel.internal.RuntimeMetamodelsImpl;
import org.hibernate.metamodel.mapping.JdbcMapping;
import org.hibernate.metamodel.model.domain.internal.MappingMetamodelImpl;
import org.hibernate.metamodel.model.domain.spi.JpaMetamodelImplementor;
import org.hibernate.metamodel.spi.MappingMetamodelImplementor;
import org.hibernate.metamodel.spi.MetamodelImplementor;
import org.hibernate.metamodel.spi.RuntimeMetamodelsImplementor;
import org.hibernate.metamodel.spi.RuntimeModelCreationContext;
import org.hibernate.persister.entity.SessionFactoryBasedWrapperOptions;
Expand Down Expand Up @@ -637,10 +637,10 @@ public NodeBuilder getCriteriaBuilder() {
return queryEngine.getCriteriaBuilder();
}

@Override @Deprecated
public MetamodelImplementor getMetamodel() {
@Override
public MappingMetamodel getMetamodel() {
validateNotClosed();
return (MetamodelImplementor) runtimeMetamodels.getMappingMetamodel();
return runtimeMetamodels.getMappingMetamodel();
}

@Override
Expand Down Expand Up @@ -757,7 +757,7 @@ public void close() throws HibernateException {
}
}
);
// ( (MappingMetamodelImpl) runtimeMetamodels.getMappingMetamodel() ).close();
runtimeMetamodels.getMappingMetamodel().close();
}

if ( queryEngine != null ) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,15 @@
import org.hibernate.sql.ast.tree.from.TableGroup;
import org.hibernate.type.spi.TypeConfiguration;

import jakarta.persistence.metamodel.Metamodel;

/**
* Access to information about the runtime relational O/R mapping model.
*
* @author Steve Ebersole
*/
@Incubating
public interface MappingMetamodel {
public interface MappingMetamodel extends Metamodel {
/**
* The {@link TypeConfiguration} this metamodel is associated with
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,13 @@
import org.hibernate.metamodel.model.domain.BasicDomainType;
import org.hibernate.metamodel.model.domain.EmbeddableDomainType;
import org.hibernate.metamodel.model.domain.EntityDomainType;
import org.hibernate.metamodel.model.domain.JpaMetamodel;
import org.hibernate.metamodel.model.domain.ManagedDomainType;
import org.hibernate.metamodel.model.domain.NavigableRole;
import org.hibernate.metamodel.model.domain.TupleType;
import org.hibernate.metamodel.model.domain.spi.JpaMetamodelImplementor;
import org.hibernate.metamodel.spi.EntityRepresentationStrategy;
import org.hibernate.metamodel.spi.MappingMetamodelImplementor;
import org.hibernate.metamodel.spi.MetamodelImplementor;
import org.hibernate.metamodel.spi.RuntimeModelCreationContext;
import org.hibernate.persister.collection.CollectionPersister;
import org.hibernate.persister.entity.EntityPersister;
Expand All @@ -78,6 +78,7 @@
import jakarta.persistence.metamodel.EmbeddableType;
import jakarta.persistence.metamodel.EntityType;
import jakarta.persistence.metamodel.ManagedType;
import jakarta.persistence.metamodel.Metamodel;

import static org.hibernate.internal.util.collections.ArrayHelper.EMPTY_STRING_ARRAY;
import static org.hibernate.metamodel.internal.JpaMetamodelPopulationSetting.determineJpaMetaModelPopulationSetting;
Expand All @@ -94,7 +95,7 @@
* @author Andrea Boriero
*/
public class MappingMetamodelImpl extends QueryParameterBindingTypeResolverImpl
implements MappingMetamodelImplementor, MetamodelImplementor, Serializable {
implements MappingMetamodelImplementor,JpaMetamodel, Metamodel, Serializable {
// todo : Integrate EntityManagerLogger into CoreMessageLogger
private static final CoreMessageLogger log = CoreLogging.messageLogger( MappingMetamodelImpl.class );

Expand Down Expand Up @@ -346,11 +347,6 @@ private static void registerEntityNameResolvers(
representationStrategy.visitEntityNameResolvers( entityNameResolvers::add );
}

@Override @SuppressWarnings("deprecation")
public java.util.Collection<EntityNameResolver> getEntityNameResolvers() {
return entityNameResolvers;
}

@Override
public TypeConfiguration getTypeConfiguration() {
return jpaMetamodel.getTypeConfiguration();
Expand All @@ -361,7 +357,6 @@ public MappingMetamodel getMappingMetamodel() {
return this;
}

@Override
public ServiceRegistry getServiceRegistry() {
return jpaMetamodel.getServiceRegistry();
}
Expand Down Expand Up @@ -545,7 +540,6 @@ public <E extends Enum<E>> E enumValue(EnumJavaType<E> enumType, String enumValu
return jpaMetamodel.enumValue( enumType, enumValueName );
}

@Override
public String[] getImplementors(String className) throws MappingException {
// computeIfAbsent() can be a contention point and we expect all the values to be in the map at some point so
// let's do an optimistic check first
Expand All @@ -572,38 +566,7 @@ public String[] getImplementors(String className) throws MappingException {
}
}

@Override @SuppressWarnings("deprecation")
public Map<String, EntityPersister> entityPersisters() {
return entityPersisterMap.convertToMap();
}

@Override @SuppressWarnings("deprecation")
public CollectionPersister collectionPersister(String role) {
final CollectionPersister persister = collectionPersisterMap.get( role );
if ( persister == null ) {
throw new MappingException( "Could not locate CollectionPersister for role : " + role );
}
return persister;
}

@Override @SuppressWarnings("deprecation")
public Map<String, CollectionPersister> collectionPersisters() {
return collectionPersisterMap;
}

@Override @SuppressWarnings("deprecation")
public EntityPersister entityPersister(Class<?> entityClass) {
return getEntityDescriptor( entityClass.getName() );
}

@Override @SuppressWarnings("deprecation")
public EntityPersister entityPersister(String entityName) throws MappingException {
final EntityPersister result = entityPersisterMap.get( entityName );
if ( result == null ) {
throw new MappingException( "Unknown entity: " + entityName );
}
return result;
}

@Override
public EntityPersister locateEntityPersister(String byName) {
Expand Down Expand Up @@ -654,21 +617,6 @@ public CollectionPersister findCollectionDescriptor(String role) {
return collectionPersisterMap.get( role );
}

@Override @SuppressWarnings("deprecation")
public Set<String> getCollectionRolesByEntityParticipant(String entityName) {
return collectionRolesByEntityParticipant.get( entityName );
}

@Override
public String[] getAllEntityNames() {
return entityPersisterMap.keys();
}

@Override
public String[] getAllCollectionRoles() {
return ArrayHelper.toStringArray( collectionPersisterMap.keySet() );
}

@Override
public <T> void addNamedEntityGraph(String graphName, RootGraphImplementor<T> entityGraph) {
jpaMetamodel.addNamedEntityGraph( graphName, entityGraph );
Expand Down Expand Up @@ -741,18 +689,18 @@ public List<RootGraph<?>> findRootGraphsForType(EntityPersister baseEntityDescri

private String[] doGetImplementors(Class<?> clazz) throws MappingException {
final ArrayList<String> results = new ArrayList<>();
for ( EntityPersister checkPersister : entityPersisters().values() ) {
final String checkQueryableEntityName = ((EntityMappingType) checkPersister).getEntityName();
forEachEntityDescriptor( descriptor -> {
final String checkQueryableEntityName = ((EntityMappingType) descriptor).getEntityName();
final boolean isMappedClass = clazz.getName().equals( checkQueryableEntityName );
if ( isMappedClass ) {
results.add( checkQueryableEntityName );
}
else {
final Class<?> mappedClass = checkPersister.getMappedClass();
final Class<?> mappedClass = descriptor.getMappedClass();
if ( mappedClass != null && clazz.isAssignableFrom( mappedClass ) ) {
final boolean assignableSuperclass;
if ( checkPersister.isInherited() ) {
final String superTypeName = checkPersister.getSuperMappingType().getEntityName();
if ( descriptor.isInherited() ) {
final String superTypeName = descriptor.getSuperMappingType().getEntityName();
final Class<?> mappedSuperclass = getEntityDescriptor( superTypeName ).getMappedClass();
assignableSuperclass = clazz.isAssignableFrom( mappedSuperclass );
}
Expand All @@ -764,8 +712,7 @@ private String[] doGetImplementors(Class<?> clazz) throws MappingException {
}
}
}
}

} );
return results.toArray( EMPTY_STRING_ARRAY );
}

Expand Down Expand Up @@ -872,4 +819,30 @@ public <T> BindableType<T> resolveQueryParameterType(Class<T> javaClass) {

return null;
}

@Override
public Set<String> getCollectionRolesByEntityParticipant(String entityName) {
return collectionRolesByEntityParticipant.get( entityName );

}

@Override
public java.util.Collection<EntityNameResolver> getEntityNameResolvers() {
return entityNameResolvers;
}

@Override
public String[] getAllEntityNames() {
return entityPersisterMap.keys();
}

@Override
public String[] getAllCollectionRoles() {
return ArrayHelper.toStringArray( collectionPersisterMap.keySet() );
}

@Override
public void close() {
// anything to do ?
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@

import org.hibernate.EntityNameResolver;
import org.hibernate.metamodel.MappingMetamodel;
import org.hibernate.persister.collection.CollectionPersister;
import org.hibernate.persister.entity.EntityPersister;
import org.hibernate.query.spi.QueryParameterBindingTypeResolver;

/**
Expand All @@ -32,4 +34,30 @@ public interface MappingMetamodelImplementor extends MappingMetamodel, QueryPara
*/
Collection<EntityNameResolver> getEntityNameResolvers();

/**
* Get the names of all entities known to this Metamodel
*
* @return All the entity names
*/
default String[] getAllEntityNames() {
return streamEntityDescriptors()
.map( EntityPersister::getEntityName )
.toArray( String[]::new );
}

/**
* Get the names of all collections known to this Metamodel
*
* @return All the entity names
*/
default String[] getAllCollectionRoles(){
return streamCollectionDescriptors()
.map( CollectionPersister::getRole )
.toArray( String[]::new );
}

default void close() {

}

}
Loading

0 comments on commit fee9e86

Please sign in to comment.