Измените схему метамодели, чтобы изменить / переименовать имена столбцов - PullRequest
0 голосов
/ 03 октября 2018

Я использую Apache MetaModel для получения информации о схеме.Есть один вариант использования, где мне нужно создать CsvDataContext объект для CSV-файла без заголовка.У меня есть имена столбцов в отдельной структуре данных (List<String> colNames).

Объект context дает имена столбцов как "A", "B", "C", etc.Я полагаю, что метамодель присваивает некоторым именам столбцов по умолчанию таблицы без заголовков.

Есть ли способ изменить схему, которая содержится в объекте CsvDataContext?

Я считаю, UpdateableDataContextдолжен работать, но документация не предоставляет какой-либо метод, который позволяет изменять метаданные, такие как имя столбца.

Как можно достичь этого сценария?

1 Ответ

0 голосов
/ 05 октября 2018

Когда вы создаете CsvDataContext, вы указываете CsvConfiguration.Один из вариантов в CsvConfiguration - предоставить ColumnNamingStrategy.Стратегия по умолчанию предполагает использование буквенных символов, A, B, C и т. Д. Но вы можете использовать собственную стратегию именования, например:

ColumnNamingStrategy columnNamingStrategy =
    ColumnNamingStrategies.customNames("id", "foo", "bar", "baz");
CsvConfiguration configuration = new CsvConfiguration(
    0, columnNamingStrategy, "UTF-8", ',', '"', '\\', true, false);
return new CsvDataContext(file, configuration);
...