【发布时间】:2021-02-12 11:15:07
【问题描述】:
我有一个像(抽象描述)这样的对象
public class Book {
private String name;
private List<Author> authors;
}
public class Author {
private String name;
}
例如
new Book()
.setName("Book name1")
.setAuthors(new ArrayList(Arrays.asList(
new Author().setName("Author 1"),
new Author().setName("Author 2"))));
示例代码:
@Bean
public FlatFileItemWriter<Book> writer()
{
FlatFileItemWriter<Book> writer = new FlatFileItemWriter<>();
writer.setResource(outputResource);
writer.setAppendAllowed(true);
writer.setLineAggregator(new DelimitedLineAggregator<Book>() {
{
setDelimiter(";");
setFieldExtractor(new BeanWrapperFieldExtractor<Book>() {
{
setNames(new String[] { "name", "authors" });
}
});
}
});
return writer;
}
这样我得到结果:
Book name1;[Author(authorName=Author 1), Author(authorName=Author 2)]
但我想得到结果 csv 文件为:
Book name1;Author 1
Book name1;Author 2
帮助我了解它是如何工作的。 提前致谢。
【问题讨论】:
-
我添加了一个答案,有帮助吗?
标签: java spring-boot spring-batch export-to-csv