在Has-A关系中使用Camel Bindy

时间:2014-08-18 07:52:45

标签: java apache-camel

您好我在Camel中将java Object导出为CSV文件时遇到问题。假设我有一个java对象,即Student,

@CsvRecord(separator=",")
public class Student {  
    @DataField(pos=1)
    private String name;
    @DataField(pos=2)
    private String college;

    // getters and setters
}

我将使用camel route中的以下代码将此对象导出到csv文件中,

.marshal(new BindyCsvDataFormat(camel.demo.Book.class))
.to("file:data/destination?fileName=book.csv")

但是,如果我在Student对象中有一个名为Address的实体对象,该怎么办?我想在我的csv中打印特定的地址值以及剩余的学生详细信息。

@CsvRecord(separator=",")
public class Student {  
    @DataField(pos=1)
    private String name;
    @DataField(pos=2)
    private String college;

    private Address address;

    // getters and setters
}

public class Address {  
    private int houseNo;
    private String street;
    private String city;

    //getters and setters
}

不,我想从csv中的地址保存学生详细信息(姓名,大学)和仅(城市)。有人可以帮助我实现这一目标。谢谢你的帮助。

1 个答案:

答案 0 :(得分:2)

使用here所述的@Link注释:

@CsvRecord(separator=",")
public class Student {  
    @DataField(pos=1)
    private String name;

    @DataField(pos=2)
    private String college;

    @Link
    private Address address;
...
}

对于班级Address

@Link
public class Address {  
...
}