一、Spring 事务问题1.描述:service1 中的 a 调用 b,b 调用了 service2 中的 c ,c 调用了 service3 中的 d期望:d 抛出异常时(我真实项目中抛出的是 Sql 异常),d,c 回滚,而 a,b 不回滚。测试:考虑到 Spring 事务 ...
一、Spring 事务问题
1.描述:service1 中的 a 调用 b,b 调用了 service2 中的 c ,c 调用了 service3 中的 d
期望:d 抛出异常时(我真实项目中抛出的是 Sql 异常),d,c 回滚,而 a,b 不回滚。
测试:考虑到 Spring 事务的自调用和 cglib 动态代理下的 spring 事务配置。添加了 <aop:aspectj-autoproxy expose-proxy="true" proxy-target-/>。
Demo:
自定义异常:
public class MyException extends SQLException { private static final long serialVersionUID = 1L; public MyException() { super(); } public MyException(String reason, String sqlState, int vendorCode, Throwable cause) { super(reason, sqlState, vendorCode, cause); } public MyException(String reason, String SQLState, int vendorCode) { super(reason, SQLState, vendorCode); } public MyException(String reason, String sqlState, Throwable cause) { super(reason, sqlState, cause); } public MyException(String reason, String SQLState) { super(reason, SQLState); } public MyException(String reason, Throwable cause) { super(reason, cause); } public MyException(String reason) { super(reason); } public MyException(Throwable cause) { super(cause); } }
原标题:项目中遇到的问题
关键词:
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。