@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. es query_string 和 match 的区别

    默认使用 空格拆分成 多个 子项,并且 每个子项 都会去分词 查询.可以通过 default_operator 指定  子项之间的关系.默认是 或 . 然后 每个 子项前面可以使用 -+ 指定必须有 ...

  2. jmeter---将回应数据写入到文件

    jmeter---将回应数据写入到文件 JMeterPlugins (插件监听器)Flexible File Writer:这个插件允许你灵活记录测试结果 Filename:结果记录的地方 Overw ...

  3. Jmeter --- 组件执行顺序与作用域

    一.Jmeter重要组件: 1)配置元件---Config Element: 用于初始化默认值和变量,以便后续采样器使用.配置元件大其作用域的初始阶段处理,配置元件仅对其所在的测试树分支有效,如,在同 ...

  4. ASP.NET AJAX入门系列(11):在多个UpdatePanle中使用Timer控件

    本文将使用Timer控件更新两个UpdatePanel控件,Timer控件将放在UpdatePanel控件的外面,并将它配置为UpdatePanel的触发器,翻译自官方文档. 主要内容 在多个Upda ...

  5. python编码encode decode(解惑)

    关于python 字符串编码一直没有搞清楚,今天总结了一下. Python 字符串类型 Python有两种字符串类型:str 与 unicode. 字符串实例 # -*- coding: utf-8 ...

  6. 报错: unable to register MBean

    解决方法: 在SpringBoot项目中配置文件加上 spring.jmx.enabled=false https://stackoverflow.com/questions/27440985/una ...

  7. mysql update 将一个表某字段设为另一个表某字段的值

    表新添加了一个字段,毫无疑问是空值.所以想将另一个表的某个字段的值写入到修改的表中. sql语句不复杂,但还是记录一下,因为也查了一会,以后说不定还会用到. mysql> update cent ...

  8. The Best KPIs to Use in Your Company

    Here is a list of key performance indicators (KPIs) that should be used in contact centres, alongsid ...

  9. Excel技巧--图表添加平均线为指标

    如上图,如果在柱状图有一平均指标线,就能很直观地显示各柱状值是否高于或低于平均值这个指标. 添加方法: (1)为表格制作一个柱状图: 2.对图表点右键,菜单选择“更改图表类型”.对话框如下选择: 3. ...

  10. 用DDE控制Word

    DDE(Dynamic Data Exchange),称为动态数据交换.用于进程间的通讯,看看他如何来和Word交互. 在System页签下有TDdeClientConv组件,拖一个放到界面上,然后我 ...