spring boot controller设置 @Transactional 不回滚的解决办法
2017-11-22 12:06
561 查看
1 @Transactional 2 @ApiOperation(value = "添加一个用户信息") 3 @RequestMapping(value = "/create", method = RequestMethod.POST) 4 public RESTful create() { 5 return userService.insert(null, null); 6 }
1 public RESTful insert(User user, Role role) { 2 try { 3 Date date = new Date(); 4 5 user = new User(); 6 user.setName("tq2"); 7 user.setAge(26); 8 user.setCreate_at(date); 9 10 userMapper.insertUser(user); 11 12 role = new Role(); 13 //role.setName("role1"); 14 role.setCreate_at(date); 15 16 roleMapper.insert(role); 17 18 return new RESTful(CodeEnum.成功.getCode(), CodeEnum.成功.getMsg()); 19 } catch (Exception ex) { 20 return new RESTful(CodeEnum.系统异常.getCode(), CodeEnum.系统异常.getMsg()); 21 } 22 }
1、role表的 name 字段不可空,但并不执行回滚
参考:https://www.cnblogs.com/leohe/p/6673096.html?utm_source=itdadao&utm_medium=referral
实现方式一
1 2 @ApiOperation(value = "添加一个用户信息") 3 @RequestMapping(value = "/create", method = RequestMethod.POST) 4 public RESTful create() { 5 try { 6 return userService.insert(null, null); 7 } catch (Exception ex) { 8 return new RESTful(CodeEnum.系统异常.getCode(), CodeEnum.系统异常.getMsg()); 9 } 10 }
1 @Transactional 2 public RESTful insert(User user, Role role) { 3 try { 4 Date date = new Date(); 5 6 user = new User(); 7 user.setName("tq2"); 8 user.setAge(26); 9 user.setCreate_at(date); 10 11 userMapper.insertUser(user); 12 13 role = new Role(); 14 //role.setName("role1"); 15 role.setCreate_at(date); 16 17 roleMapper.insert(role); 18 19 return new RESTful(CodeEnum.成功.getCode(), CodeEnum.成功.getMsg()); 20 } catch (Exception ex) { 21 throw new RuntimeException(); 22 } 23 }
实现方式二
1 2 @ApiOperation(value = "添加一个用户信息") 3 @RequestMapping(value = "/create", method = RequestMethod.POST) 4 public RESTful create() { 5 return userService.insert(null, null); 6 }
1 @Transactional 2 public RESTful insert(User user, Role role) { 3 try { 4 Date date = new Date(); 5 6 user = new User(); 7 user.setName("tq2"); 8 user.setAge(26); 9 user.setCreate_at(date); 10 11 userMapper.insertUser(user); 12 13 role = new Role(); 14 //role.setName("role1"); 15 role.setCreate_at(date); 16 17 roleMapper.insert(role); 18 19 return new RESTful(CodeEnum.成功.getCode(), CodeEnum.成功.getMsg()); 20 } catch (Exception ex) { 21 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); 22 return new RESTful(CodeEnum.系统异常.getCode(), CodeEnum.系统异常.getMsg()); 23 } 24 }
相关文章推荐
- spring boot controller设置 @Transactional 不回滚的解决办法
- Spring boot项目中自定义的controller不生效的解决办法
- 终极办法:解决spring mvc+mysql+mybatis事务不提交不回滚的问题
- 添加@Transactional ------spring boot中session中断的问题及其解决
- struts2改spring boot过程中一些问题及解决办法记录
- 初学Spring Boot遇到Whitelabel Error Page的解决办法
- 关于怎么解决从ajax传入的json参数注入到Controller的接收对象 以及如何在Spring Boot项目使用参数校验
- springBoot PUT请求接收不了参数的解决办法
- springboot ajax post 数组 400解决办法
- Intellij IDEA 使用Spring-boot-devTools无效解决办法
- Spring boot 无法加载css样式,image解决办法
- 外部Tomcat部署Spring boot自动关闭的解决办法
- Spring Boot Whitelabel Error Page解决办法
- springboot Cannot determine embedded database driver class for database type NONE解决办法
- spring-boot 开启Gzip解决办法
- SpringBoot自定义配置文件fatjar获取不到解决办法
- SpringBoot集成Swagger2实现Restful(类型转换错误解决办法)
- SpringBoot中拦截器无法注入Bean的解决办法
- Intellij IDEA SpringBoot热部署 使用Spring-boot-devTools无效解决办法
- spring boot html调用js无效400解决办法