Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading