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 type
I - 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 Details

    • AbstractSqlSearchLoader

      @Inject public AbstractSqlSearchLoader(io.vertigo.datamodel.task.TaskManager taskManager, io.vertigo.commons.transaction.VTransactionManager transactionManager)
      Constructor.
      Parameters:
      taskManager - Task manager
      transactionManager - 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:
      loadNextURI in class AbstractSearchLoader<S extends io.vertigo.datamodel.data.model.KeyConcept,I extends io.vertigo.datamodel.data.model.DataObject>
      Parameters:
      lastValue - Last chunk value
      orderByVersion - 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 use
      pkFieldName - Pk field name to return
      iteratorFieldName - Iterator field name use in where clause
      versionFieldName - Version field name to return
      Returns:
      SQL query
    • appendMaxRows

      protected void appendMaxRows(StringBuilder request, Integer maxRows)
      Ajoute à la requete les éléments techniques nécessaire pour limiter le resultat à {maxRows}.
      Parameters:
      request - Buffer de la requete
      maxRows - Nombre de lignes max
    • getSqlQueryFilter

      protected String 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