请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师:@Transactional事务没有回滚

@Transactional,不知道差在哪里了,也是继承的RuntimeException,数据库也是mysql的用引擎也是InnoDB找不到原因,而且还报错,是什么原因呢图片描述

正在回答 回答被采纳积分+3

1回答

翔仔 2020-03-19 00:41:15

同学好,@Transactional只会针对数据库,只会回滚数据库的操作,不会回滚文件的操作。此外,同学报的这个错误是因为generateThumbnail方法里面的读取水印的地方,使用了basePath,basePath由于每个同学的环境不通有可能获取到不正确的路径地址,导致获取不到watermark.jpg。所以建议和后续2.0一样,替换掉basePath,改成水印图片的绝对值路径即可

.watermark(Positions.BOTTOM_RIGHT, ImageIO.read(new File(basePath + "/watermark.jpg")), 0.25f)


0 回复 有任何疑惑可以回复我~
  • 提问者 慕村1368349 #1
    是的,老师,节我没完全听完就问你了,但是我现在遇到一个情况与你不符合,我没把水印图片放在src/test/resoures的文件里,就会报错,也是就没有找到水印图片,但是后面数据库写入成功了,我看你的视频是图片没有找到后数据没有写入,回滚了,这是你的截图这块报错了,然后进到catch块了,抛的IOException,然后数据库插入了也修改了,生成的文件夹没有图片
    回复 有任何疑惑可以回复我~ 2020-03-19 09:04:52
  • 翔仔 回复 提问者 慕村1368349 #2
    同学好,这是因为@Transaction默认只对RuntimeException起作用,你可以设置为对Exception起作用,@Transactional(rollbackFor=Exception.class)
    回复 有任何疑惑可以回复我~ 2020-03-20 00:17:35
  • 提问者 慕村1368349 回复 翔仔 #3
    好的,谢谢老师的耐心回复,我会继续仔细的把剩余课程听完
    回复 有任何疑惑可以回复我~ 2020-03-20 08:54:44
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信