what_a_name 2018-12-28 17:45 采纳率: 0%
浏览 8162

spring-boot+mybatis @Transactional事务管理不起作用

问题描述:

  • services代码如下,运行后第一条insert语句(小明)插入表中,第二条insert(小王)未插入表中
@Service
public class UserInfoServiceImpl implements IUserInfoService {
    @Override
    @Transactional
    public List<User> listUser() {
        userDao.insert(new User(100001,"小明","123","123321123"));
        int a = 1/0;                    //测试事物管理
        userDao.insert(new User(400001,"小王","123","123321123"));
        return userDao.listUserInfo();
    }
}

问题背景:

1. spring-boot + mybatis + jdk8

2. 数据库mysql,表引擎为:InnoDB,项目以普通用户连接数据库

3. 事务管理已开启

import org.springframework.transaction.annotation.EnableTransactionManagement;
@EnableTransactionManagement
@SpringBootApplication
public class SmdemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(SmdemoApplication.class, args);
    }
}

4. services类有注解,对应方法为public,方法内容未捕获异常,该方法由外部类调用

@Service
public class UserInfoServiceImpl implements IUserInfoService {

    @Resource
    private UserMapper userDao;

    @Override
    @Transactional(rollbackFor=Exception.class)
    public List<User> listUser() {
        userDao.insert(new User(100001,"小明","123","123321123"));
        int a = 1/0;
        userDao.insert(new User(400001,"小明","123","123321123"));
        return userDao.listUserInfo();
    }
        }

在网上找到的所有方法都试过了,均无效,还请高手赐教。

  • 写回答

4条回答 默认 最新

  • 庄周梦蝶。 2021-02-09 15:30
    关注

    大哥好了吗,我也想知道这是什么问题。是不是这个shiro啊原因

    评论

报告相同问题?

悬赏问题

  • ¥100 求数学坐标画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站