/*
* 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 org.hibernate.LockMode;
import org.hibernate.LockOptions;
import org.hibernate.engine.spi.LoadQueryInfluencers;
import org.hibernate.engine.spi.SessionFactoryImplementor;
import org.hibernate.ogm.loader.impl.OgmLoader;
import org.hibernate.ogm.persister.impl.OgmEntityPersister;
import org.hibernate.persister.entity.OuterJoinLoadable;
/**
* @author Emmanuel Bernard emmanuel@hibernate.org
*/
public class OgmBatchableEntityLoaderBuilder implements BatchingEntityLoaderBuilder.BatchableEntityLoaderBuilder {
@Override
public BatchableEntityLoader buildLoader(OuterJoinLoadable persister, int batchSize, LockMode lockMode, SessionFactoryImplementor factory, LoadQueryInfluencers influencers) {
// OGM does not really support lockMode,
// factory is retrieved from the persister
// TODO handle LoadQueryInfluenbcers to handle entityGraph
return new OgmLoader( new OgmEntityPersister[] { (OgmEntityPersister) persister }, batchSize );
}
@Override
public BatchableEntityLoader buildLoader(OuterJoinLoadable persister, int batchSize, LockOptions lockMode, SessionFactoryImplementor factory, LoadQueryInfluencers influencers) {
// OGM does not really support lockMode,
// factory is retrieved from the persister
// TODO handle LoadQueryInfluenbcers to handle entityGraph
return new OgmLoader( new OgmEntityPersister[] { (OgmEntityPersister) persister }, batchSize );
}
@Override
public BatchableEntityLoader buildDynamicLoader(OuterJoinLoadable persister, int batchSize, LockMode lockMode, SessionFactoryImplementor factory, LoadQueryInfluencers influencers) {
// OGM does not really support lockMode,
// factory is retrieved from the persister
// TODO handle LoadQueryInfluenbcers to handle entityGraph
return new OgmLoader( new OgmEntityPersister[] { (OgmEntityPersister) persister }, batchSize );
}
@Override
public BatchableEntityLoader buildDynamicLoader(OuterJoinLoadable persister, int batchSize, LockOptions lockOptions, SessionFactoryImplementor factory, LoadQueryInfluencers influencers) {
// OGM does not really support lockMode,
// factory is retrieved from the persister
// TODO handle LoadQueryInfluenbcers to handle entityGraph
return new OgmLoader( new OgmEntityPersister[] { (OgmEntityPersister) persister }, batchSize );
}
}