存储过程的问题

I_was_a_novice 2015-02-27 11:42:14
BaseDaoImil.java

执行存储过程的方法
这个方法必须try{}catch{}或者添加抛出声明(throws SQLException )

因为用的是声明式事物,事物指向service,如果这里使用try{}catch{},如果出现问题,会不能回滚。

添加抛出声明(throws SQLException )会在所有调用这个方法的方法上都添加throws SQLException ,这样也不好

怎样既不try{}catch{}也不throws SQLException,解决这个问题
...全文
184 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
alooka 2015-02-28
  • 打赏
  • 举报
回复
然后设conn.setAutoCommit(false); 在catch里 conn.rollback();因该是没问题的。
alooka 2015-02-28
  • 打赏
  • 举报
回复
首先要保证存储过程中没有commit;
I_was_a_novice 2015-02-27
  • 打赏
  • 举报
回复
引用 2 楼 crazypandariy 的回复:
使用try catch 在catch语句块中添加代码:TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
不行,sql语句可以回滚,存储过程不回滚
I_was_a_novice 2015-02-27
  • 打赏
  • 举报
回复
引用 1 楼 defonds 的回复:
都抛吧。交给 spring 去处理。 否则异常全被捕获并吞掉,那么你的事务处理意义何在
都抛也不回滚啊,sql语句可以回滚,存储过程不回滚
疯狂熊猫人 2015-02-27
  • 打赏
  • 举报
回复
使用try catch 在catch语句块中添加代码:TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
Defonds 2015-02-27
  • 打赏
  • 举报
回复
都抛吧。交给 spring 去处理。 否则异常全被捕获并吞掉,那么你的事务处理意义何在

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧