spring boot +mybait为什么@Transactional没有回滚

weixin_35756341 2018-08-30 01:51:26



service类:
@Transactional(rollbackFor=Exception.class)
public void insertStock(MTstock mtstock,MTgroup mtgroup)
{
mtPushMapper.insertGroup(mtgroup);
mtPushMapper.insertStock(mtstock);

}


control类:
@RequestMapping("/transation")
public String tryTransaction(String name,String companyID,int ID,String groupname,String remark)
{
String text="";
try {
MTgroup mtgroup=new MTgroup();
mtgroup.setID(ID);
mtgroup.setNAME(name);
mtgroup.setRemark(remark);

MTstock mtstock=new MTstock();
mtstock.setID("6666666666");
mtstock.setCOMPANYID(companyID);
mtstock.setCUSTID("qw45555");
mtstock.setNAME(groupname);
mtstock.setEMPLYEEID("1111111");
mtPushInfoService.insertStock(mtstock,mtgroup);
text="完成,顺利提交";
}
catch (Exception e)
{
e.printStackTrace();
System.out.println(e);
text="出错,回滚";
}
return text;
}



### Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry '6666666666' for key 'PRIMARY'
### The error may involve org.opsteel.wcyl.module.rs.mapper.MtPushMapper.insertStock-Inline
### The error occurred while setting parameters
### SQL: insert into stock(id,name,employeeid,custid,companyid) value ( ?,?,?,?,?)
### Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry '6666666666' for key 'PRIMARY'

另一个主键ID已经存在去,插入第二张表时出错为什么第一张表没有回滚,顺利插入了。。。。。
...全文
862 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
verejava 2018-09-10
  • 打赏
  • 举报
回复
街头小贩 2018-09-05
  • 打赏
  • 举报
回复
两张表的存储引擎都是innoDB?tryTransaction方法并不会抛异常,你都捕获了
weixin_35756341 2018-08-30
  • 打赏
  • 举报
回复
求大神们回答下,初学者
weixin_35756341 2018-08-30
  • 打赏
  • 举报
回复
数据库检查了时inno DB

10,606

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 其他
社区管理员
  • 其他
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧