diff --git a/hibernate-core/src/main/java/org/hibernate/Metamodel.java b/hibernate-core/src/main/java/org/hibernate/Metamodel.java deleted file mode 100644 index ab931931b701..000000000000 --- a/hibernate-core/src/main/java/org/hibernate/Metamodel.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * SPDX-License-Identifier: LGPL-2.1-or-later - * Copyright Red Hat Inc. and Hibernate Authors - */ -package org.hibernate; - -import org.hibernate.metamodel.model.domain.JpaMetamodel; - -/** - * @author Steve Ebersole - * - * @deprecated Prefer {@link JpaMetamodel} - * - * @see JpaMetamodel - */ -@Deprecated(since = "6.0") -public interface Metamodel extends JpaMetamodel { - /** - * Given the name of an entity class, determine all the class and interface names by which it can be - * referenced in an HQL query. - * - * @param entityName The name of the entity class - * - * @return the names of all persistent (mapped) classes that extend or implement the - * given class or interface, accounting for implicit/explicit polymorphism settings - * and excluding mapped subclasses/joined-subclasses of other classes in the result. - */ - String[] getImplementors(String entityName); - -} diff --git a/hibernate-core/src/main/java/org/hibernate/engine/spi/SessionFactoryDelegatingImpl.java b/hibernate-core/src/main/java/org/hibernate/engine/spi/SessionFactoryDelegatingImpl.java index 576bd8d36efd..fa62852dfbd9 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/spi/SessionFactoryDelegatingImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/spi/SessionFactoryDelegatingImpl.java @@ -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; @@ -373,8 +373,8 @@ public HibernateCriteriaBuilder getCriteriaBuilder() { } @Override @Deprecated - public MetamodelImplementor getMetamodel() { - return delegate.getMetamodel(); + public MappingMetamodel getMetamodel() { + return (MappingMetamodel) delegate.getMetamodel(); } @Override diff --git a/hibernate-core/src/main/java/org/hibernate/engine/spi/SessionFactoryImplementor.java b/hibernate-core/src/main/java/org/hibernate/engine/spi/SessionFactoryImplementor.java index 86a0b8981be3..74b8a0e66f69 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/spi/SessionFactoryImplementor.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/spi/SessionFactoryImplementor.java @@ -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; @@ -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(); } diff --git a/hibernate-core/src/main/java/org/hibernate/internal/SessionFactoryImpl.java b/hibernate-core/src/main/java/org/hibernate/internal/SessionFactoryImpl.java index 779f09006229..0b4310e970a8 100644 --- a/hibernate-core/src/main/java/org/hibernate/internal/SessionFactoryImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/internal/SessionFactoryImpl.java @@ -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; @@ -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 @@ -757,7 +757,7 @@ public void close() throws HibernateException { } } ); -// ( (MappingMetamodelImpl) runtimeMetamodels.getMappingMetamodel() ).close(); + runtimeMetamodels.getMappingMetamodel().close(); } if ( queryEngine != null ) { diff --git a/hibernate-core/src/main/java/org/hibernate/metamodel/MappingMetamodel.java b/hibernate-core/src/main/java/org/hibernate/metamodel/MappingMetamodel.java index 16358cb7d679..5a274fdd1325 100644 --- a/hibernate-core/src/main/java/org/hibernate/metamodel/MappingMetamodel.java +++ b/hibernate-core/src/main/java/org/hibernate/metamodel/MappingMetamodel.java @@ -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 */ diff --git a/hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/internal/MappingMetamodelImpl.java b/hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/internal/MappingMetamodelImpl.java index ce1fcb40c8b3..f070139b0f4d 100644 --- a/hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/internal/MappingMetamodelImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/internal/MappingMetamodelImpl.java @@ -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; @@ -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; @@ -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 ); @@ -346,11 +347,6 @@ private static void registerEntityNameResolvers( representationStrategy.visitEntityNameResolvers( entityNameResolvers::add ); } - @Override @SuppressWarnings("deprecation") - public java.util.Collection getEntityNameResolvers() { - return entityNameResolvers; - } - @Override public TypeConfiguration getTypeConfiguration() { return jpaMetamodel.getTypeConfiguration(); @@ -361,7 +357,6 @@ public MappingMetamodel getMappingMetamodel() { return this; } - @Override public ServiceRegistry getServiceRegistry() { return jpaMetamodel.getServiceRegistry(); } @@ -545,7 +540,6 @@ public > E enumValue(EnumJavaType 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 @@ -572,38 +566,7 @@ public String[] getImplementors(String className) throws MappingException { } } - @Override @SuppressWarnings("deprecation") - public Map 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 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) { @@ -654,21 +617,6 @@ public CollectionPersister findCollectionDescriptor(String role) { return collectionPersisterMap.get( role ); } - @Override @SuppressWarnings("deprecation") - public Set 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 void addNamedEntityGraph(String graphName, RootGraphImplementor entityGraph) { jpaMetamodel.addNamedEntityGraph( graphName, entityGraph ); @@ -741,18 +689,18 @@ public List> findRootGraphsForType(EntityPersister baseEntityDescri private String[] doGetImplementors(Class clazz) throws MappingException { final ArrayList 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 ); } @@ -764,8 +712,7 @@ private String[] doGetImplementors(Class clazz) throws MappingException { } } } - } - + } ); return results.toArray( EMPTY_STRING_ARRAY ); } @@ -872,4 +819,30 @@ public BindableType resolveQueryParameterType(Class javaClass) { return null; } + + @Override + public Set getCollectionRolesByEntityParticipant(String entityName) { + return collectionRolesByEntityParticipant.get( entityName ); + + } + + @Override + public java.util.Collection 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 ? + } } diff --git a/hibernate-core/src/main/java/org/hibernate/metamodel/spi/MappingMetamodelImplementor.java b/hibernate-core/src/main/java/org/hibernate/metamodel/spi/MappingMetamodelImplementor.java index 795f5b2420cb..dd89d6d84643 100644 --- a/hibernate-core/src/main/java/org/hibernate/metamodel/spi/MappingMetamodelImplementor.java +++ b/hibernate-core/src/main/java/org/hibernate/metamodel/spi/MappingMetamodelImplementor.java @@ -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; /** @@ -32,4 +34,30 @@ public interface MappingMetamodelImplementor extends MappingMetamodel, QueryPara */ Collection 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() { + + } + } diff --git a/hibernate-core/src/main/java/org/hibernate/metamodel/spi/MetamodelImplementor.java b/hibernate-core/src/main/java/org/hibernate/metamodel/spi/MetamodelImplementor.java deleted file mode 100644 index 7fafff857e8f..000000000000 --- a/hibernate-core/src/main/java/org/hibernate/metamodel/spi/MetamodelImplementor.java +++ /dev/null @@ -1,140 +0,0 @@ -/* - * SPDX-License-Identifier: LGPL-2.1-or-later - * Copyright Red Hat Inc. and Hibernate Authors - */ -package org.hibernate.metamodel.spi; - -import java.util.Collection; -import java.util.Map; -import java.util.Set; - -import org.hibernate.EntityNameResolver; -import org.hibernate.MappingException; -import org.hibernate.Metamodel; -import org.hibernate.metamodel.MappingMetamodel; -import org.hibernate.persister.collection.CollectionPersister; -import org.hibernate.persister.entity.EntityPersister; - -/** - * Extensions to the JPA-defined {@link Metamodel} contract. - * - * @author Steve Ebersole - * - * @deprecated Use {@link MappingMetamodel} or - * {@link org.hibernate.metamodel.model.domain.JpaMetamodel} - * instead. See {@link org.hibernate.metamodel.RuntimeMetamodels}. - */ -@Deprecated(since = "6.0") -public interface MetamodelImplementor extends MappingMetamodel, Metamodel { - /** - * @deprecated Use {@link MappingMetamodelImplementor#getEntityNameResolvers} instead - */ - @Deprecated(since = "6.0") - Collection getEntityNameResolvers(); - - /** - * Locate the persister for an entity by the entity class. - * - * @param entityClass The entity class - * - * @return The entity persister - * - * @throws MappingException Indicates persister for that class could not be found. - * - * @deprecated Use {@link MappingMetamodel#getEntityDescriptor} instead - */ - @Deprecated(since = "6.0") - default EntityPersister entityPersister(Class entityClass) { - return getEntityDescriptor(entityClass); - } - - /** - * Locate the persister for an entity by the entity-name - * - * @param entityName The name of the entity for which to retrieve the persister. - * - * @return The persister - * - * @throws MappingException Indicates persister could not be found with that name. - * - * @deprecated Use {@link MappingMetamodel#getEntityDescriptor} instead - */ - @Deprecated(since = "6.0") - default EntityPersister entityPersister(String entityName) { - return getEntityDescriptor(entityName); - } - - /** - * Get all entity persisters as a Map, which entity name its the key and the persister is the value. - * - * @return The Map contains all entity persisters. - * - * @deprecated With no direct replacement; see {@link MappingMetamodel#forEachEntityDescriptor} - * and {@link MappingMetamodel#streamEntityDescriptors()} instead - */ - @Deprecated(since = "6.0") - Map entityPersisters(); - - /** - * Get the persister object for a collection role. - * - * @param role The role of the collection for which to retrieve the persister. - * - * @return The persister - * - * @throws MappingException Indicates persister could not be found with that role. - * - * @deprecated Use {@link MappingMetamodel#getCollectionDescriptor} instead - */ - @Deprecated(since = "6.0") - default CollectionPersister collectionPersister(String role) { - return getCollectionDescriptor(role); - } - - /** - * Get all collection persisters as a Map, which collection role as the key and the persister is the value. - * - * @return The Map contains all collection persisters. - * - * @deprecated With no direct replacement; see {@link MappingMetamodel#forEachCollectionDescriptor} - * and {@link MappingMetamodel#streamCollectionDescriptors()} instead - */ - @Deprecated(since = "6.0") - Map collectionPersisters(); - - /** - * Retrieves a set of all the collection roles in which the given entity is a participant, as either an - * index or an element. - * - * @param entityName The entity name for which to get the collection roles. - * - * @return set of all the collection roles in which the given entityName participates. - * - * @deprecated Use {@link MappingMetamodelImplementor#getCollectionRolesByEntityParticipant} - * and {@link MappingMetamodel#streamCollectionDescriptors()} instead - */ - @Deprecated(since = "6.0") - Set getCollectionRolesByEntityParticipant(String entityName); - - /** - * Get the names of all entities known to this Metamodel - * - * @return All the entity names - */ - String[] getAllEntityNames(); - - /** - * Get the names of all collections known to this Metamodel - * - * @return All the entity names - */ - String[] getAllCollectionRoles(); - - /** - * @deprecated No longer called - */ - @Deprecated(since = "7", forRemoval = true) - default void close() { - // nothing to do - } -} diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/entitynonentity/EntityNonEntityTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/entitynonentity/EntityNonEntityTest.java index 09c9eace9697..85bc5db3b42a 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/entitynonentity/EntityNonEntityTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/entitynonentity/EntityNonEntityTest.java @@ -50,7 +50,7 @@ public void testMix() { @JiraKey( value = "HHH-9856" ) public void testGetAndFindNonEntityThrowsIllegalArgumentException() { try { - sessionFactory().getMetamodel().locateEntityPersister(Cellular.class); + sessionFactory().getMappingMetamodel().locateEntityPersister(Cellular.class); sessionFactory().getRuntimeMetamodels().getMappingMetamodel().getEntityDescriptor( Cellular.class ); } diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/entitygraph/EntityGraphUsingFetchGraphTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/entitygraph/EntityGraphUsingFetchGraphTest.java index 258351fb4676..dfc79c09069d 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/entitygraph/EntityGraphUsingFetchGraphTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/entitygraph/EntityGraphUsingFetchGraphTest.java @@ -22,9 +22,9 @@ import jakarta.persistence.TemporalType; import jakarta.persistence.TypedQuery; import jakarta.persistence.metamodel.Attribute; +import jakarta.persistence.metamodel.EntityType; import org.hibernate.graph.GraphSemantic; -import org.hibernate.metamodel.model.domain.EntityDomainType; import org.hibernate.testing.orm.junit.JiraKey; import org.hibernate.testing.orm.junit.DomainModel; @@ -178,25 +178,25 @@ void fetchAttributeNodeByAttributeFromSubgraph(SessionFactoryScope scope) { session -> { final EntityManager em = session.unwrap( EntityManager.class ); final EntityGraph entityGraph = em.createEntityGraph( CustomerOrder.class ); - EntityDomainType customerOrderEntityType = + EntityType customerOrderEntityType = scope.getSessionFactory().getMetamodel().entity( CustomerOrder.class ); entityGraph.addAttributeNodes( - (Attribute) customerOrderEntityType.getAttribute( "shippingAddress" ), - (Attribute) customerOrderEntityType.getAttribute( "orderDate" ) + customerOrderEntityType.getAttribute( "shippingAddress" ), + customerOrderEntityType.getAttribute( "orderDate" ) ); - entityGraph.addAttributeNodes( (Attribute) customerOrderEntityType.getAttribute( "shippingAddress" ) ); + entityGraph.addAttributeNodes( customerOrderEntityType.getAttribute( "shippingAddress" ) ); final Subgraph orderProductsSubgraph = entityGraph.addSubgraph( (Attribute) customerOrderEntityType.getAttribute( "orderPosition" ) ); - EntityDomainType positionEntityType = + EntityType positionEntityType = scope.getSessionFactory().getMetamodel().entity( OrderPosition.class ); - orderProductsSubgraph.addAttributeNodes( (Attribute) positionEntityType.getAttribute( "amount" ) ); - orderProductsSubgraph.addAttributeNodes( (Attribute) positionEntityType.getAttribute( "product" ) ); + orderProductsSubgraph.addAttributeNodes( positionEntityType.getAttribute( "amount" ) ); + orderProductsSubgraph.addAttributeNodes( positionEntityType.getAttribute( "product" ) ); final Subgraph productSubgraph = orderProductsSubgraph.addSubgraph( (Attribute) positionEntityType.getAttribute( "product" ) ); - EntityDomainType productEntityType = scope.getSessionFactory().getMetamodel().entity( Product.class ); - productSubgraph.addAttributeNodes( (Attribute) productEntityType.getAttribute( "productName" ) ); + EntityType productEntityType = scope.getSessionFactory().getMetamodel().entity( Product.class ); + productSubgraph.addAttributeNodes( productEntityType.getAttribute( "productName" ) ); TypedQuery query = em.createQuery( "SELECT o FROM CustomerOrder o", CustomerOrder.class diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/EntityManagerUnwrapTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/EntityManagerUnwrapTest.java index f68f2c720471..1682d1785dcf 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/EntityManagerUnwrapTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/jpa/EntityManagerUnwrapTest.java @@ -12,7 +12,6 @@ import org.hibernate.engine.spi.SessionImplementor; import org.hibernate.engine.spi.SharedSessionContractImplementor; import org.hibernate.metamodel.MappingMetamodel; -import org.hibernate.metamodel.spi.MetamodelImplementor; import org.hibernate.metamodel.spi.RuntimeMetamodelsImplementor; import org.hibernate.query.spi.QueryEngine; import org.hibernate.service.ServiceRegistry; @@ -64,7 +63,6 @@ public void testUnwrapSessionFactory() { entityManagerFactory.unwrap( jakarta.persistence.metamodel.Metamodel.class ); entityManagerFactory.unwrap( Metamodel.class ); - entityManagerFactory.unwrap( MetamodelImplementor.class ); entityManagerFactory.unwrap( MappingMetamodel.class ); entityManagerFactory.unwrap( RuntimeMetamodelsImplementor.class ); diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/mapping/converted/converter/custom/CustomTypeConverterTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/mapping/converted/converter/custom/CustomTypeConverterTest.java index d9f13bc8217d..c50f4807842d 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/mapping/converted/converter/custom/CustomTypeConverterTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/mapping/converted/converter/custom/CustomTypeConverterTest.java @@ -46,7 +46,7 @@ protected void performAssertions( TypeConfiguration bootTypeConfiguration) { try ( final SessionFactoryImplementor sessionFactory = (SessionFactoryImplementor) metadataBuilder.build().buildSessionFactory()) { assertThat( - sessionFactory.getMetamodel().getTypeConfiguration(), + sessionFactory.getMappingMetamodel().getTypeConfiguration(), sameInstance( bootTypeConfiguration ) ); diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/metamodel/MetamodelTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/metamodel/MetamodelTest.java index bda5187246c3..c87c81384076 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/metamodel/MetamodelTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/metamodel/MetamodelTest.java @@ -34,7 +34,7 @@ public class MetamodelTest { @Test @JiraKey(value = "HHH-12906") public void testGetAllCollectionRoles(EntityManagerFactoryScope scope) { - String[] collectionRoles = ( (SessionFactoryImplementor) scope.getEntityManagerFactory() ).getMetamodel() + String[] collectionRoles = ( (SessionFactoryImplementor) scope.getEntityManagerFactory() ).getMappingMetamodel() .getAllCollectionRoles(); Arrays.sort( collectionRoles ); assertArrayEquals( collectionRoles, new String[] { @@ -56,7 +56,7 @@ public void testGetCollectionRolesByEntityParticipant(EntityManagerFactoryScope @Test public void testEntityNames(EntityManagerFactoryScope scope) { - String[] entityNames = ( (SessionFactoryImplementor) scope.getEntityManagerFactory() ).getMetamodel() + String[] entityNames = ( (SessionFactoryImplementor) scope.getEntityManagerFactory() ).getMappingMetamodel() .getAllEntityNames(); Arrays.sort( entityNames ); assertArrayEquals( diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/serialization/CacheKeyEmbeddedIdEnanchedTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/serialization/CacheKeyEmbeddedIdEnanchedTest.java index aa394f4df9c5..456ae2e2d619 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/serialization/CacheKeyEmbeddedIdEnanchedTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/serialization/CacheKeyEmbeddedIdEnanchedTest.java @@ -66,7 +66,7 @@ public void testSimpleCacheKeysFactorySerialization(SessionFactoryScope scope) t private void testId(SessionFactoryScope scope, CacheKeysFactory cacheKeysFactory, String entityName, Object id) throws Exception { SessionFactoryImplementor sessionFactory = scope.getSessionFactory(); - final EntityPersister persister = sessionFactory.getMetamodel().entityPersister( entityName ); + final EntityPersister persister = sessionFactory.getMappingMetamodel().findEntityDescriptor( entityName ); final Object key = cacheKeysFactory.createEntityKey( id, persister, diff --git a/migration-guide.adoc b/migration-guide.adoc index 2b8d0330470b..c8bf17d960eb 100644 --- a/migration-guide.adoc +++ b/migration-guide.adoc @@ -384,6 +384,8 @@ While most users will never see this change, it might impact integrations which ** Removed `org.hibernate.Interceptor#onCollectionUpdate(Object, Serializable)` in favour of `org.hibernate.Interceptor#onCollectionUpdate(Object, Object)` ** Removed `org.hibernate.Interceptor#findDirty(Object, Serializable, Object[], Object[], String[], Type[])` in favour of `org.hibernate.Interceptor#findDirty(Object, Object, Object[], Object[], String[], Type[])` ** Removed `org.hibernate.Interceptor#getEntity(String, Serializable)` in favour of `org.hibernate.Interceptor#getEntity(String, Serializable)` +** Removed `org.hibernate.metamodel.spi.MetamodelImplementor` in favor of `org.hibernate.metamodela.MappingMetmodel` or `org.hibernate.metamodel.model.domain.JpaMetamodel` +** Removed `org.hibernate.Metamodel` in favor of `org.hibernate.metamodel.model.domain.JpaMetamodel` * Settings ** Removed `hibernate.mapping.precedence` and friends diff --git a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/validation/MockCollectionPersister.java b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/validation/MockCollectionPersister.java index 3f2c144c85fc..5c760e0f6645 100644 --- a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/validation/MockCollectionPersister.java +++ b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/validation/MockCollectionPersister.java @@ -52,7 +52,7 @@ public CollectionType getCollectionType() { @Override public EntityPersister getOwnerEntityPersister() { - return factory.getMetamodel().entityPersister(ownerEntityName); + return factory.getMetamodel().getEntityDescriptor(ownerEntityName); } abstract Type getElementPropertyType(String propertyPath); @@ -96,7 +96,7 @@ public boolean hasIndex() { public EntityPersister getElementPersister() { if (elementType instanceof EntityType ) { return factory.getMetamodel() - .entityPersister(elementType.getName()); + .getEntityDescriptor(elementType.getName()); } else { return null; diff --git a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/validation/MockSessionFactory.java b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/validation/MockSessionFactory.java index 7c304d39494e..8725d0c1e8b5 100644 --- a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/validation/MockSessionFactory.java +++ b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/validation/MockSessionFactory.java @@ -53,6 +53,7 @@ import org.hibernate.metamodel.CollectionClassification; import org.hibernate.metamodel.internal.JpaMetamodelPopulationSetting; import org.hibernate.metamodel.internal.JpaStaticMetamodelPopulationSetting; +import org.hibernate.metamodel.MappingMetamodel; import org.hibernate.metamodel.internal.MetadataContext; import org.hibernate.metamodel.internal.RuntimeMetamodelsImpl; import org.hibernate.metamodel.mapping.EntityIdentifierMapping; @@ -83,7 +84,6 @@ import org.hibernate.metamodel.model.domain.internal.SingularAttributeImpl; 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.collection.CollectionPersister; @@ -366,7 +366,7 @@ public Type getReferencedPropertyType(String className, String propertyName) } @Override - public MetamodelImplementor getMetamodel() { + public MappingMetamodel getMetamodel() { return metamodel; } @@ -702,12 +702,6 @@ public EntityPersister getEntityDescriptor(String entityName) { return createEntityPersister(entityName); } - @Override - public EntityPersister entityPersister(String entityName) - throws MappingException { - return createEntityPersister(entityName); - } - @Override public EntityPersister locateEntityPersister(String entityName) throws MappingException { @@ -724,11 +718,6 @@ public CollectionPersister findCollectionDescriptor(String role) { return createCollectionPersister(role); } - @Override - public CollectionPersister collectionPersister(String role) { - return createCollectionPersister(role); - } - @Override public JpaMetamodelImplementor getJpaMetamodel() { return new MockJpaMetamodelImpl();