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