将元模型的架构修改为 change/rename 列名称

Modify the metamodel's schema to change/rename column names

我正在使用 Apache MetaModel 获取模式信息。有一个用例,我需要为没有 header 的 csv 文件创建 CsvDataContext object。我在单独的数据结构中有列名 (List<String> colNames)。

context object 给出的列名称为 "A", "B", "C", etc。我想元模型将一些默认列名分配给没有 headers.

的表

有没有办法修改 CsvDataContext object 持有的模式?

我相信 UpdateableDataContext 应该可以,但文档没有公开任何允许修改元数据(如列名)的方法。

如何实现这种情况?

创建 CsvDataContext 时,您指定 CsvConfigurationCsvConfiguration 中的选项之一是提供 ColumnNamingStrategy。默认策略实际上是使用字母字符,ABC 等。但是您可以使用自定义命名策略,如下所示:

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