在我的项目中配置了以下内容:
<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 批处理不应该回滚记录,但仍然会回滚记录。如果我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>
预计不会回滚记录,但会回滚记录。