Apache Camel Bindy
Я хотел бы знать о записи объектов в CSV с использованием Camel Bindy, но мой класс имеет типы данных, определенные пользователем. Я вижу исходный код Bindy, дает исключение для типов данных, отличных от предопределенных, Любая опция в Bindy для выполнения подобных действий Если @Link может помочь здесь? Спасибо:)
вот мой класс
@CsvRecord
Public class Myclass{
@DataField(pos = 1)
private RefClass refOne;
@DataField(pos = 2)
private String createdOn;
}
public class RefClass{
private RefClassTwo refTwo;
private String createdBy;
}
2 ответа
@Link может помочь инкапсулировать двух связанных демонов в отдельный класс. Так, например, для CSV
Заказ, Имя, Фамилия
1, Фрэнк Смит
Вы могли бы сделать что-то вроде этого
public class Order {
@DataField(pos = 1)
private int orderNr;
@Link
private Client client;
}
@Link
public class Client {
@DataField(pos = 2)
private String firstname;
@DataField(pos = 3)
private String lastname;
}
Для полного примера @Link проверьте этот модульный тест из тестов компонентов верблюда Бинди, используя эту сложную модель
Если вы хотите получить информацию из одного поля CSV для нескольких типов полей в ваших классах, используйте bindy для анализа информации в строке
@CsvRecord
Public class Myclass{
@DataField(pos = 1)
private String refOne;
@DataField(pos = 2)
private String createdOn;
}
и затем используйте процессор на вашем маршруте, проанализируйте содержимое позиции 1 и сгенерируйте нужные типы данных.
Объекты, связанные с @Link
помогите сгруппировать атрибуты. Но также эти связанные классы должны быть аннотированы Бинди.