Настроил ниже в моем проекте:
<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>
Откат не ожидается откат, но откат записей.