spring boot controller设置 @Transactional 不回滚的解决办法
@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 不回滚的解决办法的更多相关文章
- Spring Boot Configuration Annotation Proessor not found in classpath解决办法
From: https://www.cnblogs.com/whtgjy/p/9438317.html 出现spring boot Configuration Annotation Proessor ...
- spring boot 使用 mybatis 开启事务回滚 的总结
1.前言 以前没有使用mybatis,可以关闭自动提交,然后做sql操作,对操作进行catch捕获异常, 如果没有异常则commit 提交 ,有异常则 rollback 回滚,新增的数据则删除 ,修改 ...
- spring boot web项目在IDEA下热部署解决办法(四步搞定)
最近在用spring boot 做一个web站点,修改了类.html.js等,刷新页面,没有生效,非要手动去make一下或者重启,大大降低了开发效率. 什么是热部署? 应用启动后会把编译好的Class ...
- Spring中@Transactional事务回滚实例及源码
一.使用场景举例 在了解@Transactional怎么用之前我们必须要先知道@Transactional有什么用.下面举个栗子:比如一个部门里面有很多成员,这两者分别保存在部门表和成员表里面,在删除 ...
- Spring中@Transactional事务回滚(含实例详细讲解,附源码)
一.使用场景举例 在了解@Transactional怎么用之前我们必须要先知道@Transactional有什么用.下面举个栗子:比如一个部门里面有很多成员,这两者分别保存在部门表和成员表里面,在删除 ...
- Spring中@Transactional事务回滚
转载: Spring中@Transactional事务回滚 一.使用场景举例 在了解@Transactional怎么用之前我们必须要先知道@Transactional有什么用.下面举个栗子:比如一个部 ...
- Spring中@Transactional事务回滚(含实例具体解说,附源代码)
一.使用场景举例 在了解@Transactional怎么用之前我们必须要先知道@Transactional有什么用. 以下举个栗子:比方一个部门里面有非常多成员,这两者分别保存在部门表和成员表里面,在 ...
- Spring AOP声明式事务异常回滚(转)
转:http://hi.baidu.com/iduany/item/20f8f8ed24e1dec5bbf37df7 Spring AOP声明式事务异常回滚 近日测试用例,发现这样一个现象:在业务代码 ...
- Spring AOP声明式事务异常回滚
近日测试用例,发现这样一个现象:在业务代码中,有如下两种情况,比如:throw new RuntimeException("xxxxxxxxxxxx"); 事物回滚throw ne ...
随机推荐
- 记一次服务器路由跟踪 (2019-01-23 TODO)
记一次服务器路由跟踪 有用户反馈网站 无法访问. 现象如下: ping 没有反馈,确认了可以 ping 通其它的网站. tracert 跟踪到服务器商的内部就没的反应了. 同样一家的服务器商,另外一台 ...
- eclipse 视图打不开解决方法
遇到一个eclipse问题,查看方法调用者,或打开调用层次窗口失败,这时要查看一个方法的调用者只好通过全局搜索的方式.网上搜索报错关键词没找到答案,看了一下全局设置也没有想过的选项. 后想到一个ecl ...
- oracle之 如何 dump logfile
这篇文章解释了如何在联机或归档重做日志文件中获取转储. 约束和限制:1.数据库必须安装(或打开).更改系统转储日志文件与任何实例无关,因此不需要为其操作安装数据库.但是,在ALTER SYSTEM D ...
- apache HTML5 History 模式 配置
说明 使用的 Apache/2.4.6 版本. 文档这么写的: 但是 没说 IfModule 放在哪里 . httpd.conf 里面有大量的 IfModule . 这样的.但是实测 无效.无 ...
- DES加密Java实现
下面是代码的实现: package com.smt.cipher.symmetry; import java.nio.charset.Charset; import java.security.Sec ...
- Hibernate更新删除数据后,再查询数据依然存在的解决办法
删除数据后,重新查询了数据库,DB中记录已经删除了,但是数据依然能查询到,网上都说是Hibernate的缓冲问题. 我对session进行了clear,flush,并且在事务和查询中都对session ...
- NET设计模式 第二部分 行为型模式(17):迭代器模式(Iterator Pattern)
概述 在面向对象的软件设计中,我们经常会遇到一类集合对象,这类集合对象的内部结构可能有着各种各样的实现,但是归结起来,无非有两点是需要我们去关心的:一是集合内部的数据存储结构,二是遍历集合内部的数据. ...
- 在Hanlp词典手动添加未登录词的方式介绍
在使用Hanlp词典进行分词的时候,会出现分词不准的情况,原因是内置词典中并没有收录当前这个词,也就是我们所说的未登录词,只要把这个词加入到内置词典中就可以解决类似问题,如何操作呢,下面我们来看一下: ...
- 使用spark streaming报错ERROR DFSClient: Failed to close inode xxxx
转载自:http://blog.csdn.net/xiaolixiaoyi/article/details/45875101 好几个Spark streaming的程序同时运行,发现spark报出了如 ...
- 安装ruby&gem
#安装yaml#------------------------------------------------------- cd /opt tar zxf yaml-0.1.7.tar.gz ./ ...