空的@Link字段不是CSV,缺少列

时间:2017-07-07 10:52:21

标签: csv apache-camel bindy

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

实体像这样链接在一起:

@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;
    ...
}

1 个答案:

答案 0 :(得分: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;
}