/*
* 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();
}