/*
* Hibernate OGM, Domain model persistence for NoSQL datastores
*
* 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.ogm.loader.entity.impl;
import java.io.Serializable;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.LockOptions;
import org.hibernate.engine.spi.SessionImplementor;
import org.hibernate.loader.entity.UniqueEntityLoader;
import org.hibernate.persister.entity.EntityPersister;
import org.hibernate.type.Type;
/**
* TODO: move that method to UniqueEntityLoader
*
* Contract between an entity loader and the batch fetching contract of BatchingEntityLoaderBuilder.
*
* @author Emmanuel Bernard emmanuel@hibernate.org
*/
public interface BatchableEntityLoader extends UniqueEntityLoader {
/**
* Called by wrappers that batch load entities
* @param persister only needed for logging
* @param lockOptions
*/
List<?> loadEntityBatch(
final SessionImplementor session,
final Serializable[] ids,
final Type idType,
final Object optionalObject,
final String optionalEntityName,
final Serializable optionalId,
final EntityPersister persister,
LockOptions lockOptions) throws HibernateException;
}