private void addForeignKeyGenerators(List<Column> columns, String schemaName, String tableName) throws SQLException {
        // add Generators that can be derived from foreign key constraints.
        for (Column column : columns) {
            if (metaDataDao.hasForeignKey(tableName, column.columnName)) {
                ForeignKey foreignKey = metaDataDao.getForeignKey(tableName, column.columnName);
                if (! this.generators.hasGeneratorFor(tableName,column.columnName)) {
                    List<String> candidates = metaDataDao.getValues(schemaName, foreignKey.targetTable, foreignKey.targetColumn);
                    this.generators.add(new StringPickerGenerator(tableName,column.columnName, candidates));
                }
            }
        }
    }