В настоящее время у меня есть несколько считывателей элементов для отдельных запросов к базе данных. Я хочу получить всю эту информацию в один объект. Есть ли тип ItemReader, который может сделать это для меня? Я бы хотел, чтобы процессор и Writer обрабатывали этот объект после чтения чтения в виде одного объекта. Поэтому в основном мне нужно создать объект из группы ItemReaders и использовать его с этой точки в качестве моего единственного источника данных для обработки и записи. Следует отметить, что я не могу изменить существующие ItemReaders из-за того, что он является большей частью проекта.Создайте класс ItemReader, который собирает данные от читателей подзаголовков
0
A
ответ
1
Даже если вы не можете изменить существующее кодирование, я бы избегал использования нескольких считывателей и вместо этого рассматривал использование структуры ORM, такой как Hibernate, в новом читателе?
В качестве альтернативы создайте новый читатель, используя JdbcCursorItemReader
, и просто соедините 3 (или более) таблицы вместе с вашим указателем движения и сопоставьте результирующий набор с вашим пользовательским объектом. Если соединения приведут к тому, что курсор вернет несколько строк на объект, я сначала предложил бы вернуться и посмотреть на спящий режим. Если Hibernate не является вариантом, вы можете расширить SingleItemPeekableItemReader
, чтобы перебирать курсор до тех пор, пока вы полностью не построили свои объекты.
Я бы сказал, что ваш подход испорчен для начала, и попытка обернуть этих слушателей в один из них - это больше проблем, чем это стоит. –
В настоящее время у меня есть Field1Reader, Field2Reader, Field3Reader, и я хочу, чтобы читатель супер предметов, который мог вставлять данные в объект, который я создал – subhatt
Как уже было сказано, ваш подход кажется ошибочным. Почему бы не написать один запрос для извлечения всего за один раз ... Вместо того, чтобы пытаться синхронизировать 3 считывателя в одном. –