public void configure(Type type, Properties params, Dialect dialect) throws MappingException {
    tableName = PropertiesHelper.getString(ID_TABLE, params, DEFAULT_TABLE);
    pkColumnName = PropertiesHelper.getString(PK_COLUMN_NAME, params, DEFAULT_PK_COLUMN);
    valueColumnName = PropertiesHelper.getString(VALUE_COLUMN_NAME, params, DEFAULT_VALUE_COLUMN);
    String schemaName = params.getProperty(SCHEMA);
    String catalogName = params.getProperty(CATALOG);
    keySize = PropertiesHelper.getInt(PK_LENGTH_NAME, params, DEFAULT_PK_LENGTH);
    String keyValue = PropertiesHelper.getString(PK_VALUE_NAME, params, params.getProperty(TABLE));

    if (tableName.indexOf('.') < 0) {
      tableName = Table.qualify(catalogName, schemaName, tableName);
    }

    query =
        "select "
            + valueColumnName
            + " from "
            + dialect.appendLockHint(LockMode.UPGRADE, tableName)
            + " where "
            + pkColumnName
            + " = '"
            + keyValue
            + "'"
            + dialect.getForUpdateString();

    update =
        "update "
            + tableName
            + " set "
            + valueColumnName
            + " = ? where "
            + valueColumnName
            + " = ? and "
            + pkColumnName
            + " = '"
            + keyValue
            + "'";

    insert =
        "insert into "
            + tableName
            + "("
            + pkColumnName
            + ", "
            + valueColumnName
            + ") "
            + "values('"
            + keyValue
            + "', ?)";

    // hilo config
    maxLo = PropertiesHelper.getInt(MAX_LO, params, Short.MAX_VALUE);
    lo = maxLo + 1; // so we "clock over" on the first invocation
    returnClass = type.getReturnedClass();
  }