/*
* 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.persister.spi;
import org.hibernate.HibernateException;
import org.hibernate.cache.spi.access.CollectionDataAccess;
import org.hibernate.cache.spi.access.EntityDataAccess;
import org.hibernate.cache.spi.access.NaturalIdDataAccess;
import org.hibernate.mapping.Collection;
import org.hibernate.mapping.PersistentClass;
import org.hibernate.persister.collection.CollectionPersister;
import org.hibernate.persister.entity.EntityPersister;
import org.hibernate.service.Service;
Contract for creating persister instances (both EntityPersister
and CollectionPersister
varieties). Author: Steve Ebersole
/**
* Contract for creating persister instances (both {@link EntityPersister} and {@link CollectionPersister} varieties).
*
* @author Steve Ebersole
*/
public interface PersisterFactory extends Service {
Create an entity persister instance.
Params: - entityBinding – The mapping information describing the entity
- entityCacheAccessStrategy – The cache access strategy for the entity region
- naturalIdCacheAccessStrategy – The cache access strategy for the entity's natural-id cross-ref region
- creationContext – Access to additional information needed to create an EntityPersister
Throws: - HibernateException – Indicates a problem building the persister.
Returns: An appropriate entity persister instance.
/**
* Create an entity persister instance.
*
* @param entityBinding The mapping information describing the entity
* @param entityCacheAccessStrategy The cache access strategy for the entity region
* @param naturalIdCacheAccessStrategy The cache access strategy for the entity's natural-id cross-ref region
* @param creationContext Access to additional information needed to create an EntityPersister
*
* @return An appropriate entity persister instance.
*
* @throws HibernateException Indicates a problem building the persister.
*/
EntityPersister createEntityPersister(
PersistentClass entityBinding,
EntityDataAccess entityCacheAccessStrategy,
NaturalIdDataAccess naturalIdCacheAccessStrategy,
PersisterCreationContext creationContext) throws HibernateException;
Create a collection persister instance.
Params: - collectionBinding – The mapping information describing the collection
- cacheAccessStrategy – The cache access strategy for the collection region
- creationContext – Access to additional information needed to create an EntityPersister
Throws: - HibernateException – Indicates a problem building the persister.
Returns: An appropriate collection persister instance.
/**
* Create a collection persister instance.
*
* @param collectionBinding The mapping information describing the collection
* @param cacheAccessStrategy The cache access strategy for the collection region
* @param creationContext Access to additional information needed to create an EntityPersister
*
* @return An appropriate collection persister instance.
*
* @throws HibernateException Indicates a problem building the persister.
*/
CollectionPersister createCollectionPersister(
Collection collectionBinding,
CollectionDataAccess cacheAccessStrategy,
PersisterCreationContext creationContext) throws HibernateException;
}