Spring jdbcTemplate用于多个数据库操作的回滚

时间:2015-07-22 06:41:37

标签: jdbc transactions spring-jdbc jdbctemplate transactionmanager

我有一个程序,它使用handler,businessObject和DAO来执行程序。控制从处理程序到businessObject开始,最后到DAO进行数据库操作。

例如,我的程序执行3个操作:insertEmployee(),updateEmployee()和deleteEmployee()从处理程序一个接一个地调用每个方法。一旦insertEmployee()调用控件返回到处理程序然后它再次调用updateEmployee()控制回处理程序然后它调用deleteEmployee()。

问题陈述:如果我在dao中的前两个方法成功并且控制权返回到处理程序,那么它请求dao的下一个方法是deleteEmployee()。同时它在deleteEmployee()中面临某种异常。它应该能够回滚早期的insertEmployee()和updateEmployee()操作。它不应该只回滚deleteEmployee()。它应该表现为该程序从未在系统中运行。

任何人都可以指出如何在spring jdbcTemplate事务管理中实现这一点。

1 个答案:

答案 0 :(得分:0)

您应该检查特殊的交易传播:PROPAGATION_REQUIRED

更多信息: http://docs.spring.io/spring/docs/current/spring-framework-reference/html/transaction.html#tx-propagation