Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java OpenCSV将具有嵌套bean的对象转换为csv_Java_Spring_Csv_Javabeans_Opencsv - Fatal编程技术网

Java OpenCSV将具有嵌套bean的对象转换为csv

Java OpenCSV将具有嵌套bean的对象转换为csv,java,spring,csv,javabeans,opencsv,Java,Spring,Csv,Javabeans,Opencsv,我试图将一个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;

我试图将一个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中的bookName

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);
列位置映射策略映射策略
=新列位置映射策略();
mapStrategy.setType(Student.class);
String[]columns=新字符串[]{“s_id”、“name”、“bookName”};
setColumnMapping(列);
StatefulBeanToCsv btcsv=新的StatefulBeanToCsvBuilder(编写器)
.带引号(CSVWriter.无引号字符)
.withMappingStrategy(地图策略)
.带分隔符(“;”)
.build();
btcsv.write(学生);
谁能帮帮我吗

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);