2017-07-07 91 views
0

我试图用多个实体的字段生成一个CSV文件。在我的骆驼路线中,我有一个BindyCsvDataFormat用于我的实体。但是,如果SubEntity为null,则SubEntity字段不会以“”形式导出到CSV文件。所以某些行缺少列。 MainEntity中的空值被导出为“”。当SubEntity为空时,如何配置Bindy将SubEntity列导出为“”?空的@Link字段不在CSV中,缺失列

的实体连在了一起,像这样:

@Entity 
@CsvRecord(separator=",", generateHeaderColumns=true) 
public class MainEntity { 

    @DataField(pos = 1, position = 1, columnName="firstColumn") 
    private String column; 

    @ManyToOne 
    @Link 
    private SubEntity subEntity; 
    ... 
} 

@Entity 
@Link 
public class SubEntity { 

    @DataField(pos = 2, position = 2, columnName="secondColumn") 
    private String name; 
    ... 
} 

回答

0

我结束了不使用@Link,因为它不能处理空对象。相反,我创建了这样的DTO:

@CsvRecord(separator=",", generateHeaderColumns=true) 
public class EntityDTO { 

    @DataField(pos = 1, position = 1, columnName="firstColumn") 
    private String column; 

    @DataField(pos = 2, position = 2, columnName="secondColumn") 
    private String subEntityName; 
}