Class AbstractSqlSearchLoader<S extends io.vertigo.datamodel.data.model.KeyConcept,I extends io.vertigo.datamodel.data.model.DataObject>
java.lang.Object
io.vertigo.datafactory.impl.search.loader.AbstractSearchLoader<S,I>
io.vertigo.datafactory.impl.search.loader.AbstractSqlSearchLoader<S,I>
- Type Parameters:
S- KeyConcept typeI- Index type
- All Implemented Interfaces:
io.vertigo.core.node.component.Component,io.vertigo.core.node.component.CoreComponent,SearchLoader<S,I>
public abstract class AbstractSqlSearchLoader<S extends io.vertigo.datamodel.data.model.KeyConcept,I extends io.vertigo.datamodel.data.model.DataObject>
extends AbstractSearchLoader<S,I>
Default SearchLoader for Database datasource.
- Author:
- npiedeloup
-
Constructor Summary
ConstructorsConstructorDescriptionAbstractSqlSearchLoader(io.vertigo.datamodel.task.TaskManager taskManager, io.vertigo.commons.transaction.VTransactionManager transactionManager) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionprotected voidappendMaxRows(StringBuilder request, Integer maxRows) Ajoute à la requete les éléments techniques nécessaire pour limiter le resultat à {maxRows}.protected static final StringgetEntityName(io.vertigo.datamodel.data.definitions.DataDefinition dataDefinition) Nom de la table en fonction de la définition du DT mappé.protected StringgetNextIdsSqlQuery(String tableName, String pkFieldName, String iteratorFieldName, String versionFieldName) Create a SQL query to get next chunk's ids next in table from previous chunkprotected StringSpecific SqlQuery structural filter.protected final io.vertigo.datamodel.task.TaskManagerprotected final io.vertigo.commons.transaction.VTransactionManagerprotected final List<io.vertigo.core.lang.Tuple<io.vertigo.datamodel.data.model.UID<S>, Serializable>> loadNextURI(Serializable lastValue, boolean orderByVersion, io.vertigo.datamodel.data.definitions.DataDefinition dataDefinition) Load uris of next chunk.Methods inherited from class io.vertigo.datafactory.impl.search.loader.AbstractSearchLoader
chunk, chunk, getVersionField, getVersionFieldNameMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.vertigo.datafactory.search.definitions.SearchLoader
loadData
-
Constructor Details
-
AbstractSqlSearchLoader
@Inject public AbstractSqlSearchLoader(io.vertigo.datamodel.task.TaskManager taskManager, io.vertigo.commons.transaction.VTransactionManager transactionManager) Constructor.- Parameters:
taskManager- Task managertransactionManager- transactionManager
-
-
Method Details
-
getTransactionManager
protected final io.vertigo.commons.transaction.VTransactionManager getTransactionManager() -
loadNextURI
protected final List<io.vertigo.core.lang.Tuple<io.vertigo.datamodel.data.model.UID<S>,Serializable>> loadNextURI(Serializable lastValue, boolean orderByVersion, io.vertigo.datamodel.data.definitions.DataDefinition dataDefinition) Load uris of next chunk.- Specified by:
loadNextURIin classAbstractSearchLoader<S extends io.vertigo.datamodel.data.model.KeyConcept,I extends io.vertigo.datamodel.data.model.DataObject> - Parameters:
lastValue- Last chunk valueorderByVersion- Order chunk by version or by id (if versionFieldName not empty, we could crawl data by version or by id)dataDefinition- KeyConcept definition- Returns:
- Uris of next chunk.
-
getNextIdsSqlQuery
protected String getNextIdsSqlQuery(String tableName, String pkFieldName, String iteratorFieldName, String versionFieldName) Create a SQL query to get next chunk's ids next in table from previous chunk- Parameters:
tableName- Table name to usepkFieldName- Pk field name to returniteratorFieldName- Iterator field name use in where clauseversionFieldName- Version field name to return- Returns:
- SQL query
-
appendMaxRows
Ajoute à la requete les éléments techniques nécessaire pour limiter le resultat à {maxRows}.- Parameters:
request- Buffer de la requetemaxRows- Nombre de lignes max
-
getSqlQueryFilter
Specific SqlQuery structural filter. If use with reindexDelta : logicaly elements must be returned by this filter, and index data must be filterd by loadData query. So this filter may no change during data life cycle ( like `type='text'`) and inactivity filter should be in loadData query. To use a limit by a date (for archive for exemple), you may add a filter here with 1 hour or 1 day more and the right limit is loadData quey.- Returns:
- Specific SqlQuery filter
-
getTaskManager
protected final io.vertigo.datamodel.task.TaskManager getTaskManager()- Returns:
- TaskManager
-
getEntityName
protected static final String getEntityName(io.vertigo.datamodel.data.definitions.DataDefinition dataDefinition) Nom de la table en fonction de la définition du DT mappé.- Parameters:
dataDefinition- Définition du DT mappé- Returns:
- Nom de la table
-