配置事务的文件 spring-mybatis.xml
在service 中写了一个方法 是使用注解 在 这个service类上加了 @Transactional
@Transactional("transactionManager")
@Service
public class AttendServiceImpl implements AttendService{
@Override
public void traincation() {
Map map1 = new HashMap();
map1.put("userid", "1111");
map1.put("username","肖总");
map1.put("date", "2017-03-15");
map1.put("state", "/");
Map map2 = new HashMap();
map2.put("userid", "1131");
map2.put("username","小名");
map2.put("date", "2017-03-15");
map2.put("state", "/");
dao.add_attend_api(map1);
try {
int i = 1/0;//设置了一个异常
} catch (Exception e) {
System.out.println(e.getMessage());
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
dao.add_attend_api(map2);
}
}
执行该方法 出现异常 没有回滚,第一条数据插入到了数据库中
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.transaction.NoTransactionException: No transaction aspect-managed TransactionStatus in scope
是哪里配置有问题么?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
包扫描的范围太小了吧。你的service在那个包下。
方法申明时候增加 throws Exception试试
public void traincation throws Exception(){
}
要把异常抛出去Spring才能捕获到给你回滚呀
把代码改成这样: