Обновление / вставка CompositeItemWriter в родительские и дочерние таблицы - PullRequest
0 голосов
/ 13 июня 2019

В моем весеннем пакетном приложении мне нужно обновить две таблицы (родительскую и дочернюю), требование:

, если родительской записи не существует, а дочерняя запись существует - вставить в родительскую запись и дочернюю запись- Выберите первичный ключ вставленной записи - обновите дочернюю запись с помощью первичного ключа родителя

. Все вышеперечисленное должно быть выполнено в весеннем пакете

я использовал CompositeItemWriter.Сначала запускаем оператор select, если он недоступен, затем получаем порядковый номер и выполняем слияние родителя и вставки потомка.

CompositeItemWriter<EPCAddress> compositeItemWriter = new CompositeItemWriter<>();
    long sequenceNumber = getAddressSequence();
    compositeItemWriter.setDelegates(Arrays.asList(insertParent(jdbcTemplate,sequenceNumber), updateChild(jdbcTemplate,sequenceNumber)));
    return compositeItemWriter;

Всего нужно написать четыре независимых автора. Как я могу получитьпервичный ключ родительской таблицы, который вставляется, так что я могу передать его в обновление дочерней таблицы? Можно ли упростить эту реализацию?

...