将元模型的架构修改为 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
时,您指定 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);
我正在使用 Apache MetaModel 获取模式信息。有一个用例,我需要为没有 header 的 csv 文件创建 CsvDataContext
object。我在单独的数据结构中有列名 (List<String> colNames
)。
context
object 给出的列名称为 "A", "B", "C", etc
。我想元模型将一些默认列名分配给没有 headers.
有没有办法修改 CsvDataContext
object 持有的模式?
我相信 UpdateableDataContext
应该可以,但文档没有公开任何允许修改元数据(如列名)的方法。
如何实现这种情况?
创建 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);