All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.akquinet.jbosscc.guttenbase.statements.SplitByColumnSelectStatementCreator Maven / Gradle / Ivy

There is a newer version: 2.1.0
Show newest version
package de.akquinet.jbosscc.guttenbase.statements;

import de.akquinet.jbosscc.guttenbase.hints.SplitColumnHint;
import de.akquinet.jbosscc.guttenbase.meta.ColumnMetaData;
import de.akquinet.jbosscc.guttenbase.meta.TableMetaData;
import de.akquinet.jbosscc.guttenbase.repository.ConnectorRepository;
import de.akquinet.jbosscc.guttenbase.tools.SplitColumn;
import java.sql.SQLException;

/**
 * Sometimes the amount of data exceeds any buffer. In these cases we need to split the data by some given range, usually the primary key.
 * I.e., the data is read in chunks where these chunks are split using the ID column range of values.
 *
 * 

* © 2012-2020 akquinet tech@spree *

* * Hint is used by {@link SplitColumnHint} * @author M. Dahm */ public class SplitByColumnSelectStatementCreator extends AbstractSelectStatementCreator { public SplitByColumnSelectStatementCreator(final ConnectorRepository connectorRepository, final String connectorId) { super(connectorRepository, connectorId); } @Override protected String createWhereClause(final TableMetaData tableMetaData) throws SQLException { final ColumnMetaData splitColumn = _connectorRepository.getConnectorHint(_connectorId, SplitColumn.class).getValue() .getSplitColumn(tableMetaData); return "WHERE " + splitColumn.getColumnName() + " BETWEEN ? AND ?"; } @Override protected String createOrderBy(final TableMetaData tableMetaData) throws SQLException { final ColumnMetaData splitColumn = _connectorRepository.getConnectorHint(_connectorId, SplitColumn.class).getValue() .getSplitColumn(tableMetaData); return "ORDER BY " + splitColumn.getColumnName(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy