DeadlockLoserDataAccessException在执行JDBC BATCHUPDATE
问题描述:
最近我得到了以下异常: org.springframework.dao.DeadlockLoserDataAccessException: PreparedStatementCallback;
DeadlockLoserDataAccessException在执行JDBC BATCHUPDATE
当我的代码中调用下面的方法就来了: int[] org.springframework.jdbc.core.JdbcTemplate.batchUpdate(String[] sql) throws DataAccessException
总之,执行批处理JDBC查询我得到DeadlockLoserDataAccessException
。
现在即使它是运行时异常,我决定抓住它并重试。
但我不确定批处理中的查询会发生什么情况。他们全部都回滚了吗?或抛出此异常之后的查询不会执行,并且之前的所有查询都已执行?
答
您应该在事务之外捕获死锁异常。
如果您的事务管理器设置为异常回滚,则批量中的所有查询都将回滚。