我们有一个小批量项目,包括弹簧靴和弹簧批。
我们正在使用JdbcBatchItemWriter
和db2数据库。但是,当发生错误时,我们收到以下错误消息:
引起:com.ibm.db2.jcc.am.BatchUpdateException:[jcc] [t4] [102] [10040] [3.63.123]批处理失败。批次已提交,但批次的单个成员至少发生了一个例外。 使用getNextException()来检索特定批处理元素的异常。 ERRORCODE = -4229,SQLSTATE = null
不幸的是,要获得明确的错误消息,我需要Spring来调用getNextException()
来获取有关精确异常的详细信息。但是,我已经检查了类SQLErrorCodeSQLExceptionTranslator
的代码,并且它看起来不像Spring提供了一些功能。
有没有人在不重写课程SQLErrorCodeSQLExceptionTranslator
的情况下找到解决此问题的方法?
答案 0 :(得分:1)
这可以通过在 jobLauncher.run()结束后查看由 getAllFailureExceptions()返回的例外列表来处理。
List<Throwable> exceptions = execution.getAllFailureExceptions();
for (Throwable throwable : exceptions) {
//code to handle nested exceptions
}