/*
 * Hibernate, Relational Persistence for Idiomatic Java
 *
 * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
 * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
 */
package org.hibernate.boot;

import java.util.Map;
import java.util.UUID;

import org.hibernate.SessionFactory;
import org.hibernate.boot.model.IdentifierGeneratorDefinition;
import org.hibernate.boot.model.TypeDefinition;
import org.hibernate.boot.model.relational.Database;
import org.hibernate.cfg.annotations.NamedEntityGraphDefinition;
import org.hibernate.cfg.annotations.NamedProcedureCallDefinition;
import org.hibernate.dialect.function.SQLFunction;
import org.hibernate.engine.ResultSetMappingDefinition;
import org.hibernate.engine.spi.FilterDefinition;
import org.hibernate.engine.spi.Mapping;
import org.hibernate.engine.spi.NamedQueryDefinition;
import org.hibernate.engine.spi.NamedSQLQueryDefinition;
import org.hibernate.mapping.Collection;
import org.hibernate.mapping.FetchProfile;
import org.hibernate.mapping.PersistentClass;
import org.hibernate.mapping.Table;

Represents the ORM model as determined from all provided mapping sources. NOTE : for the time being this is essentially a copy of the legacy Mappings contract, split between reading the mapping information exposed here and collecting it via InFlightMetadataCollector
Author:Steve Ebersole
Since:5.0
/** * Represents the ORM model as determined from all provided mapping sources. * * NOTE : for the time being this is essentially a copy of the legacy Mappings contract, split between * reading the mapping information exposed here and collecting it via InFlightMetadataCollector * * @author Steve Ebersole * * @since 5.0 */
public interface Metadata extends Mapping {
Get the builder for SessionFactory instances based on this metamodel,
Returns:The builder for SessionFactory instances.
/** * Get the builder for {@link org.hibernate.SessionFactory} instances based on this metamodel, * * @return The builder for {@link org.hibernate.SessionFactory} instances. */
SessionFactoryBuilder getSessionFactoryBuilder();
Short-hand form of building a SessionFactory through the builder without any additional option overrides.
Returns:THe built SessionFactory.
/** * Short-hand form of building a {@link org.hibernate.SessionFactory} through the builder without any additional * option overrides. * * @return THe built SessionFactory. */
SessionFactory buildSessionFactory();
Gets the UUID for this metamodel.
Returns:the UUID.
/** * Gets the {@link java.util.UUID} for this metamodel. * * @return the UUID. */
UUID getUUID();
Retrieve the database model.
Returns:The database model.
/** * Retrieve the database model. * * @return The database model. */
Database getDatabase();
Retrieves the PersistentClass entity metadata representation for known all entities. Returned collection is immutable
Returns:All PersistentClass representations.
/** * Retrieves the PersistentClass entity metadata representation for known all entities. * * Returned collection is immutable * * @return All PersistentClass representations. */
java.util.Collection<PersistentClass> getEntityBindings();
Retrieves the PersistentClass entity mapping metadata representation for the given entity name.
Params:
  • entityName – The entity name for which to retrieve the metadata.
Returns:The entity mapping metadata, or null if no matching entity found.
/** * Retrieves the PersistentClass entity mapping metadata representation for * the given entity name. * * @param entityName The entity name for which to retrieve the metadata. * * @return The entity mapping metadata, or {@code null} if no matching entity found. */
PersistentClass getEntityBinding(String entityName);
Retrieves the Collection metadata representation for known all collections. Returned collection is immutable
Returns:All Collection representations.
/** * Retrieves the Collection metadata representation for known all collections. * * Returned collection is immutable * * @return All Collection representations. */
java.util.Collection<Collection> getCollectionBindings();
Retrieves the collection mapping metadata for the given collection role.
Params:
  • role – The collection role for which to retrieve the metadata.
Returns:The collection mapping metadata, or null if no matching collection found.
/** * Retrieves the collection mapping metadata for the given collection role. * * @param role The collection role for which to retrieve the metadata. * * @return The collection mapping metadata, or {@code null} if no matching collection found. */
Collection getCollectionBinding(String role);
Retrieves all defined imports (class renames).
Returns:All imports
/** * Retrieves all defined imports (class renames). * * @return All imports */
Map<String,String> getImports();
Retrieve named query metadata by name.
Params:
  • name – The query name
Returns:The named query metadata, or null.
/** * Retrieve named query metadata by name. * * @param name The query name * * @return The named query metadata, or {@code null}. */
NamedQueryDefinition getNamedQueryDefinition(String name); java.util.Collection<NamedQueryDefinition> getNamedQueryDefinitions();
Retrieve named SQL query metadata.
Params:
  • name – The SQL query name.
Returns:The named query metadata, or null
/** * Retrieve named SQL query metadata. * * @param name The SQL query name. * * @return The named query metadata, or {@code null} */
NamedSQLQueryDefinition getNamedNativeQueryDefinition(String name); java.util.Collection<NamedSQLQueryDefinition> getNamedNativeQueryDefinitions(); java.util.Collection<NamedProcedureCallDefinition> getNamedProcedureCallDefinitions();
Retrieve the metadata for a named SQL result set mapping.
Params:
  • name – The mapping name.
Returns:The named result set mapping metadata, or null if none found.
/** * Retrieve the metadata for a named SQL result set mapping. * * @param name The mapping name. * * @return The named result set mapping metadata, or {@code null} if none found. */
ResultSetMappingDefinition getResultSetMapping(String name); Map<String, ResultSetMappingDefinition> getResultSetMappingDefinitions();
Retrieve a type definition by name.
Params:
  • typeName – The name of the type definition to retrieve.
Returns:The named type definition, or null
/** * Retrieve a type definition by name. * * @param typeName The name of the type definition to retrieve. * * @return The named type definition, or {@code null} */
TypeDefinition getTypeDefinition(String typeName);
Retrieves the complete map of filter definitions. Returned map is immutable
Returns:The filter definition map.
/** * Retrieves the complete map of filter definitions. * * Returned map is immutable * * @return The filter definition map. */
Map<String,FilterDefinition> getFilterDefinitions();
Retrieves a filter definition by name.
Params:
  • name – The name of the filter definition to retrieve .
Returns:The filter definition, or null.
/** * Retrieves a filter definition by name. * * @param name The name of the filter definition to retrieve * . * @return The filter definition, or {@code null}. */
FilterDefinition getFilterDefinition(String name); FetchProfile getFetchProfile(String name); java.util.Collection<FetchProfile> getFetchProfiles(); NamedEntityGraphDefinition getNamedEntityGraph(String name); Map<String, NamedEntityGraphDefinition> getNamedEntityGraphs(); IdentifierGeneratorDefinition getIdentifierGenerator(String name); java.util.Collection<Table> collectTableMappings(); Map<String,SQLFunction> getSqlFunctionMap(); }