发表于: 2019-11-08 23:36:10

1 1132


一、今天完成的事情:

主要完成小课堂,获得后台账户id的util方法。

二、明天计划的事情:
主要完成角色管理模块controller。
三、遇到的问题:

用@使用@Transactional注解,回滚无效

这个搞了半天没结果,各种错误都试了,都没有结果

@Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.READ_COMMITTED, rollbackFor = Exception.class)
@Override
public boolean saveRolePerms(Role role, List<Long> permissionIds) {
//新增角色信息
   roleMapper.insertSelective(role);
   int i=10/0;
   Long roleId = role.getId();
   //保存角色和权限的关系
   for (Long permissionId : permissionIds) {
roleMapper.insertRolePerm(roleId, permissionId);
   }
return true;
}


四、收获:

1.学习了事务处理@Transactional注解的一些坑。

@Transactional注解只有在public 方法才有效。

异常类型是不是unchecked异常,如果checke异常也要进行回滚,就需要注解上面写明异常类型

@Transactional(rollbackFor=Exception.class

数据库引擎要支持事务,Mysql中innoDB能支持事务,而MyISAM是不支持事务的。

检测异常是不是被catch住了,如果被catch,则会不生效。

一个类中,非@Transactional注解调用@Transactional注解的方法,注解的方法中的@Transactional不起作用

Transactional是否生效, 仅取决于是否加载于接口方法, 并且是否通过接口方法调用(而不是本类调用)。

2.学习了什么是hash和hashMap的一些知识。



返回列表 返回列表
评论

    分享到