我正在尝试使用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中使用这种模型吗?