论坛首页 Java企业应用论坛

配置spring 的事务控制,没有实现回滚,怎么回事?求指教

浏览 16026 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2013-02-26  
还有就是查看操作的数据库表的引擎是否支持事务,也许根本就不支持呢?
0 请登录后投票
   发表时间:2013-02-26  
scriptguy 写道
还有就是查看操作的数据库表的引擎是否支持事务,也许根本就不支持呢?



查看过我的MySql数据库表格。表格格式为InnoDB.是属于支持事务的啊。
我已经把工程放在附件中了。不知道有没有时间可以帮我看看到底问题在哪里啊?
0 请登录后投票
   发表时间:2013-02-26   最后修改:2013-02-27
这个改成接口试试
<aop:pointcut id="allManagerMethod" expression="execution(* login.dao.HelloDao.*(..))" />
Spring的这个pointcut只是对Interface起作用的。
对impl反而拦截不了。
1 请登录后投票
   发表时间:2013-02-27  
<tx:method name="insert*" propagation="REQUIRED" rollback-for="Exception"  />试试
1 请登录后投票
   发表时间:2013-02-27  
你的baseDao怎么写的呢
0 请登录后投票
   发表时间:2013-02-27  
dingchao.lonton 写道
你的baseDao怎么写的呢



有附件
0 请登录后投票
   发表时间:2013-02-27  
dwangel 写道
这个改成接口试试
<aop:pointcut id="allManagerMethod" expression="execution(* login.dao.HelloDao.*(..))" />
Spring的这个pointcut只是对Interface起作用的。
对impl反而拦截不了。


如果配置为接口实现层的话,也可以实现拦截的。我测试过了。
<tx:method name="insert*" propagation="REQUIRED" rollback-for="Exception"  />红色这部分需要添加。之前可能配置了但是tx:method这部分写错了,调来调去没有测试所有的组合可能。
0 请登录后投票
   发表时间:2013-02-27  
fangfumin 写道
<tx:method name="insert*" propagation="REQUIRED" rollback-for="Exception"  />试试



嗯。可能我之前哪里配置错误了,原先也按你这么写一直调不通,这次可能配置合理了,少了rollback,是无法实现回滚的。谢谢啦。
0 请登录后投票
   发表时间:2013-03-01   最后修改:2013-03-01
SQLException是需要检查的,只有转成unchecked异常才会有效果,或者在你的xml里边指定事务回滚异常类型为SQLException
0 请登录后投票
   发表时间:2013-03-02  
要throw出来,你自己已经在方法中catch了,外层的代理不会收到异常~~~

catch(Exception e){
throw e;
}
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics