@Transactional
@ApiOperation(value = "添加一个用户信息")
@RequestMapping(value = "/create", method = RequestMethod.POST)
public RESTful create() {
return userService.insert(null, null);
}
 public RESTful insert(User user, Role role) {
try {
Date date = new Date(); user = new User();
user.setName("tq2");
user.setAge(26);
user.setCreate_at(date); userMapper.insertUser(user); role = new Role();
//role.setName("role1");
role.setCreate_at(date); roleMapper.insert(role); return new RESTful(CodeEnum.成功.getCode(), CodeEnum.成功.getMsg());
} catch (Exception ex) {
return new RESTful(CodeEnum.系统异常.getCode(), CodeEnum.系统异常.getMsg());
}
}

1、role表的 name 字段不可空,但并不执行回滚

参考:https://www.cnblogs.com/leohe/p/6673096.html?utm_source=itdadao&utm_medium=referral

实现方式一

 2 @ApiOperation(value = "添加一个用户信息")
@RequestMapping(value = "/create", method = RequestMethod.POST)
public RESTful create() {
try {
return userService.insert(null, null);
} catch (Exception ex) {
return new RESTful(CodeEnum.系统异常.getCode(), CodeEnum.系统异常.getMsg());
}
}
 @Transactional
public RESTful insert(User user, Role role) {
try {
Date date = new Date(); user = new User();
user.setName("tq2");
user.setAge(26);
user.setCreate_at(date); userMapper.insertUser(user); role = new Role();
//role.setName("role1");
role.setCreate_at(date); roleMapper.insert(role); return new RESTful(CodeEnum.成功.getCode(), CodeEnum.成功.getMsg());
} catch (Exception ex) {
throw new RuntimeException();
}

实现方式二

 @ApiOperation(value = "添加一个用户信息")
@RequestMapping(value = "/create", method = RequestMethod.POST)
public RESTful create() {
return userService.insert(null, null);
}
 @Transactional
public RESTful insert(User user, Role role) {
try {
Date date = new Date(); user = new User();
user.setName("tq2");
user.setAge(26);
user.setCreate_at(date); userMapper.insertUser(user); role = new Role();
//role.setName("role1");
role.setCreate_at(date); roleMapper.insert(role); return new RESTful(CodeEnum.成功.getCode(), CodeEnum.成功.getMsg());
} catch (Exception ex) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return new RESTful(CodeEnum.系统异常.getCode(), CodeEnum.系统异常.getMsg());
}
}

spring boot controller设置 @Transactional 不回滚的解决办法的更多相关文章

  1. Spring Boot Configuration Annotation Proessor not found in classpath解决办法

    From: https://www.cnblogs.com/whtgjy/p/9438317.html 出现spring boot Configuration Annotation Proessor ...

  2. spring boot 使用 mybatis 开启事务回滚 的总结

    1.前言 以前没有使用mybatis,可以关闭自动提交,然后做sql操作,对操作进行catch捕获异常, 如果没有异常则commit 提交 ,有异常则 rollback 回滚,新增的数据则删除 ,修改 ...

  3. spring boot web项目在IDEA下热部署解决办法(四步搞定)

    最近在用spring boot 做一个web站点,修改了类.html.js等,刷新页面,没有生效,非要手动去make一下或者重启,大大降低了开发效率. 什么是热部署? 应用启动后会把编译好的Class ...

  4. Spring中@Transactional事务回滚实例及源码

    一.使用场景举例 在了解@Transactional怎么用之前我们必须要先知道@Transactional有什么用.下面举个栗子:比如一个部门里面有很多成员,这两者分别保存在部门表和成员表里面,在删除 ...

  5. Spring中@Transactional事务回滚(含实例详细讲解,附源码)

    一.使用场景举例 在了解@Transactional怎么用之前我们必须要先知道@Transactional有什么用.下面举个栗子:比如一个部门里面有很多成员,这两者分别保存在部门表和成员表里面,在删除 ...

  6. Spring中@Transactional事务回滚

    转载: Spring中@Transactional事务回滚 一.使用场景举例 在了解@Transactional怎么用之前我们必须要先知道@Transactional有什么用.下面举个栗子:比如一个部 ...

  7. Spring中@Transactional事务回滚(含实例具体解说,附源代码)

    一.使用场景举例 在了解@Transactional怎么用之前我们必须要先知道@Transactional有什么用. 以下举个栗子:比方一个部门里面有非常多成员,这两者分别保存在部门表和成员表里面,在 ...

  8. Spring AOP声明式事务异常回滚(转)

    转:http://hi.baidu.com/iduany/item/20f8f8ed24e1dec5bbf37df7 Spring AOP声明式事务异常回滚 近日测试用例,发现这样一个现象:在业务代码 ...

  9. Spring AOP声明式事务异常回滚

    近日测试用例,发现这样一个现象:在业务代码中,有如下两种情况,比如:throw new RuntimeException("xxxxxxxxxxxx"); 事物回滚throw ne ...

随机推荐

  1. ~ # himm -sh: himm: not found的解决方法

    ls /bin发现没有himm 海思根文件默认没有把himm工具集成在bin里,但是在sdk中 /home/swann/Hi3516CV300_SDK_V1.0.3.0/osdrv/tools/boa ...

  2. Java Dom4j XML用法总结

    1.新建XML文档:              Document doc = DocumentHelper.createDocument();             Element root = d ...

  3. Percona XtraDB Cluster 的一些使用限制(PXC 5.7)

    Percona XtraDB Cluster有众多的优秀特性,使得mysql集群得以轻松实现.但是不要忽略了它的一些限制.如果你无法接受,或者你的应用程序或数据库(比如使用了memory引擎)对限制无 ...

  4. spring-IOC容器(三)

    一.通过工厂方法配置Bean: .xml <!-- class属性:指向静态工厂方法的全类名 factory-method:指向静态工厂方法的名字 constructor-arg:如果工厂方法需 ...

  5. py-day1-5 python 分割 、 字母大小转换

    # partition() 分割为3段 从左往右遇见的第一个开始 test = 'bassaiwoll' v = test.partition('s') print(v) ('ba', 's', 's ...

  6. Redis set数据结构

    set里的数据不能重复 1. 增加set1,值为 a b c d 1 2 3 2. 返回集合元素的数量 3. 重命名set1为set100 4. 查看集合中的成员 5.sdiff set100 set ...

  7. 阿里云 CentOS安装Git

    一.Git的安装 1. 下载Git wget https://github.com/git/git/archive/v2.8.0.tar.gz 2. 安装依赖 sudo yum -y install ...

  8. Spring Cloud(Dalston.SR5)--Feign 与 Hystrix 断路器整合

    创建项目 要使 Feign 与 Hystrix 进行整合,我们需要增加 Feign 和 Hystrix 的依赖,修改 POM.xml 中增加以下依赖项如下: <?xmlversion=" ...

  9. 自动加载以及Composer的实现

    类的自动加载 两个函数 __autoload()魔术方法.spl_autoload_register 当php文件中使用了new关键字实例化一个对象时,如果该类没有在本php文件中被定义,将会触发__ ...

  10. [转]跳板机Jumpserve的生产环境配置

    6.跳板机Jumpserver]   Jumpserver是国内一款开源的轻便的跳板机系统,他们的官网:http://www.jumpserver.org/ 使用这款软件意在提高公司内部登录生产环境服 ...