骆驼宾迪模型传承

时间:2014-10-08 17:07:14

标签: csv apache-camel bindy

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

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

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

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中使用这种模型吗?

0 个答案:

没有答案