那些年踩过的坑---java篇
事务
Transaction rolled back because it has been marked as rollback-only
问题描述:项目使用的是springboot,在代码中未使用事物注解,也未明显的声明。但还是报错了。
解决方案:使用的是两个类,当b类中进行throw抛出异常,然后a类中进行了try—catch捕获。就抛出了如上的异常。将b类中的方法加入到a类中,a自己调用自己的方法即可。
代码中使用insert并且返回但是未保存到数据库中
问题描述:前端进行web请求,接口返回成功,但是数据未插入到数据库中
解决方案:这段请求中的代码使用了事务。这段代码没有报错,但是调用的其他代码产生了异常,调用的其他代码也添加了事务,但是对异常进行了处理,没有阻断程序的运行,但是报错的代码进行了回滚操作。为了保持事务保持一致性,最外层的代码也回滚了事务。才导致了接口返回正常,但是数据库中却没有数据。
线程
@Async不生效
问题描述:在方法上增加Async注解,但是调试时代码还是会进入异步的方法中,一直是在同步执行,没有产生异步的效果。
解决方案:将需要异步执行的方法单独整理到一个类中。然后去调用,异步就可以正常的实现。