4

我试图在使用bindy csv Dataformat(Camel 2.13.1)时进行一些继承我有一个抽象类和两个具体类,每个类都继承基类。

前任

@CsvRecord(separator=";",generateHeaderColumns=true,skipFirstLine=true)
public abstract class AbstractBaseFormat {
    @DataField(columnName="FIELD1",pos=1)
    protected String field1;

    @DataField(columnName="FIELD2",pos=2)
    protected String field2;

    //  getter/setter

}

public class Format1 extends AbstractBaseFormat {
    @DataField(columnName="FIELD3",pos=3)
    private String field3;
    // getter / setter
}

public class Format2 extends AbstractBaseFormat {
    @DataField(columnName="FIELD3",pos=3)
    private Long field3;
    // getter / setter
}

当我在路线中使用具体类时,骆驼会抛出错误

java.lang.IllegalArgumentException: The separator has not been defined in the annotation @CsvRecord or not instantiated during initModel. must be specified

好的,@CsvRecord 注解在抽象类上,无法被 Bindy Factory 识别。

但是如果我把这个注释放在每个具体的类上,我会得到另一个异常,因为 Bindy 没有找到第一个字段(pos = 1)。

我可以将这种模型与 Bindy csv Dataformat 一起使用吗?

4

0 回答 0