首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring batch回滚插入

问Spring batch回滚插入
EN

Stack Overflow用户
提问于 2019-02-11 18:24:58
回答 1查看 669关注 0票数 0

在我的项目中配置如下:

代码语言:javascript
复制
<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>

加载文件时,我有重复的记录,但由于我在no-rollback-exception-classes下配置了org.springframework.dao.DuplicateKeyException,Spring batch应该不会回滚记录,但记录仍然会回滚。如果我从列表中删除DuplicateKeyException,那么它将抛出异常。我们使用的是Spring batch版本:3.0.7.RELEASE

代码语言:javascript
复制
<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>

预计不会回滚记录,但会回滚记录。

EN

回答 1

Stack Overflow用户

发布于 2019-02-11 19:51:08

根据您的配置,当抛出DuplicateKeyException时,Spring Batch仍将尝试提交事务(无回滚),但由于该异常,此提交无论如何都会失败。Spring Batch不能强制数据库提交具有重复键或违反完整性约束的记录。

在将重复项目发送到编写器之前,您需要使用ItemProcessor过滤掉重复项目。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54628388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档