Я пытаюсь сопоставить bean-компонент с файлом CSV с выбранными столбцами (не всеми столбцами), но проблема в том, что у моего bean-компонента есть другие вложенные bean-компоненты в качестве атрибутов.
Class Student {
@CsvBindByName
private String s_id;
@CsvBindByName
private String name;
@CsvRecurse
private List<Book> books;
}
Class Book {
@CsvBindByName
private String bookName;
private String bookAuthor;
}
Я хочу отобразить этот объект в CSV-файл с нижеуказанным форматом
s_id;name;bookName
Я пытался с приведенным ниже кодом, но не получаю bookName в CSV
ColumnPositionMappingStrategy<Student> mapStrategy
= new ColumnPositionMappingStrategy<>();
mapStrategy.setType(Student.class);
String[] columns = new String[]{"s_id", "name", "bookName"};
mapStrategy.setColumnMapping(columns);
StatefulBeanToCsv<Student> btcsv = new StatefulBeanToCsvBuilder<Student>(writer)
.withQuotechar(CSVWriter.NO_QUOTE_CHARACTER)
.withMappingStrategy(mapStrategy)
.withSeparator(';')
.build();
btcsv.write(students);
Может кто-нибудь, пожалуйста, помогите мне.