Обновление / вставка CompositeItemWriter в родительские и дочерние таблицы
В моем весеннем пакетном приложении мне нужно обновить две таблицы (родительскую и дочернюю), требование
если родительской записи не существует, а дочерняя запись существует - Вставить в родительскую запись и дочернюю запись - Выбрать первичный ключ вставленной записи - обновить дочернюю запись первичным ключом родителя
Все вышеперечисленное должно быть сделано в весенней партии
я использовал CompositeItemWriter. Сначала запускается оператор выбора, если он недоступен, затем получается порядковый номер и выполняется слияние родительского элемента и вставка дочернего элемента.
CompositeItemWriter<EPCAddress> compositeItemWriter = new CompositeItemWriter<>();
long sequenceNumber = getAddressSequence();
compositeItemWriter.setDelegates(Arrays.asList(insertParent(jdbcTemplate,sequenceNumber), updateChild(jdbcTemplate,sequenceNumber)));
return compositeItemWriter;
Всего нужно написать четыре независимых автора. Как я могу получить первичный ключ родительской таблицы, который вставлен, чтобы я мог передать его обновлению дочерней таблицы? Можно ли упростить эту реализацию?