OpenCSV конвертирует объект с вложенным бином в csv - PullRequest
2 голосов
/ 30 марта 2020

Я пытаюсь сопоставить 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);

Может кто-нибудь, пожалуйста, помогите мне.

...