public GenericTableHandler(JsonValue tableConfig,String dbSchemaName,JsonValue queriesConfig,JsonValue commandsConfig,int maxBatchSize,SQLExceptionHandler sqlExceptionHandler){
  cfg=GenericTableConfig.parse(tableConfig);
  this.mainTableName=cfg.mainTableName;
  this.propTableName=cfg.propertiesTableName;
  this.dbSchemaName=dbSchemaName;
  if (maxBatchSize < 1) {
    this.maxBatchSize=1;
  }
 else {
    this.maxBatchSize=maxBatchSize;
  }
  if (sqlExceptionHandler == null) {
    this.sqlExceptionHandler=new DefaultSQLExceptionHandler();
  }
 else {
    this.sqlExceptionHandler=sqlExceptionHandler;
  }
  queries=new TableQueries(this,mainTableName,propTableName,dbSchemaName,getSearchableLength(),new GenericQueryResultMapper());
  queryMap=Collections.unmodifiableMap(initializeQueryMap());
  queries.setConfiguredQueries(queriesConfig,commandsConfig,queryMap);
  enableBatching=(this.maxBatchSize > 1);
  if (enableBatching) {
    logger.info("JDBC statement batching enabled, maximum batch size {}",this.maxBatchSize);
  }
 else {
    logger.info("JDBC statement batching disabled.");
  }
}

public GenericTableHandler ( JsonValue tableConfig , String dbSchemaName , JsonValue queriesConfig , JsonValue commandsConfig , int maxBatchSize , SQLExceptionHandler sqlExceptionHandler ) { cfg = GenericTableConfig . parse ( tableConfig ) ; this . mainTableName = cfg . mainTableName ; this . propTableName = cfg . propertiesTableName ; this . dbSchemaName = dbSchemaName ; if ( maxBatchSize < 1 ) { this . maxBatchSize = 1 ; } else { this . maxBatchSize = maxBatchSize ; } if ( sqlExceptionHandler == null ) { this . sqlExceptionHandler = new DefaultSQLExceptionHandler ( ) ; } else { this . sqlExceptionHandler = sqlExceptionHandler ; } queries = new TableQueries ( this , mainTableName , propTableName , dbSchemaName , getSearchableLength ( ) , new GenericQueryResultMapper ( ) ) ; queryMap = Collections . unmodifiableMap ( initializeQueryMap ( ) ) ; queries . setConfiguredQueries ( queriesConfig , commandsConfig , queryMap ) ; enableBatching = ( this . maxBatchSize > 1 ) ; if ( enableBatching ) { logger . info ( "JDBC statement batching enabled, maximum batch size {}" , this . maxBatchSize ) ; } else { logger . info ( "JDBC statement batching disabled." ) ; } }
create a generic table handler using a queryfiltervisitor that uses generic object property tables to process query filters .
