Пружина откатывает вкладыши - PullRequest
0 голосов
/ 11 февраля 2019

Настроил ниже в моем проекте:

<batch:no-rollback-exception-classes>
        <batch:include class="java.sql.SQLException"/>
        <batch:include class="org.springframework.dao.DuplicateKeyException"/>
       <batch:include class="java.sql.SQLIntegrityConstraintViolationException"/>

</batch:no-rollback-exception-classes>

При загрузке файла у меня есть дубликаты записей, но так как я настроил org.springframework.dao.DuplicateKeyException в no-rollback-exception-classes, Spring batch не должен откатывать записи,но все равно записи становятся откатанными.Если я удаляю DuplicateKeyException из списка, это вызывает исключение.Мы используем пакетную версию Spring: 3.0.7.RELEASE

<batch:no-rollback-exception-classes>
        <batch:include class="java.sql.SQLException"/>
        <batch:include class="org.springframework.dao.DuplicateKeyException"/>
       <batch:include class="java.sql.SQLIntegrityConstraintViolationException"/>

</batch:no-rollback-exception-classes>

Откат не ожидается откат, но откат записей.

1 Ответ

0 голосов
/ 11 февраля 2019

В соответствии с вашей конфигурацией, когда выдается DuplicateKeyException, Spring Batch все равно будет пытаться зафиксировать транзакцию (без отката), но в любом случае эта фиксация завершится неудачей из-за этого исключения.Spring Batch не может принудительно заставить базу данных фиксировать записи с дублирующимися ключами или нарушая ограничения целостности.

Вам необходимо отфильтровать дублирующиеся элементы с помощью ItemProcessor перед отправкой их автору записи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...