"我将 latke-demo 项目运行起来, 访问 http://localhost:8080/register 添加数据时,程序出现如下异常 [图片] 我断点进入JdbcRepository的add方法里面的变量currentTransaction为null,说明没有获取到事务。 于是,我就手动添加事务给该方法,如下图 .."

latke-demo 事务问题

我将 latke-demo 项目运行起来, 访问 http://localhost:8080/register 添加数据时,程序出现如下异常 menusaveimgsavepath20181204145338jpg 我断点进入JdbcRepositoryadd方法里面的变量currentTransactionnull,说明没有获取到事务。 于是,我就手动添加事务给该方法,如下图 menusaveimgsavepath20181204145937jpguserRepository.add(user)上面手动创建事务Transaction transaction = userRepository.beginTransaction(); 并手动提交事务transaction.commit(); 此时就能够成功插入数据到数据库, 我想知道是什么原因导致注解事务@Transactional没有生效呢 我使用的数据库是 mysql5.7

  • Latke

    Latke 是一款以 JSON 为主的 Java Web 框架。

    48 引用 • 357 回帖 • 507 关注
  • 事务
    15 引用 • 16 回帖 • 1 关注
  • Q&A

    提问之前请先看一下这篇文章 《提问的智慧》精读注解版,好的问题比好的答案更有价值。

    867 引用 • 5386 回帖 • 610 关注
感谢    关注    收藏    赞同    反对    举报    分享
被采纳的回答
  • 88250  

    更新到最新的代码应该就没问题了。

4 回帖    
请输入回帖内容...
  • 88250      

    更新到最新的代码应该就没问题了。

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • loyal            

    谢谢大佬,这个问题是怎样解决的呢

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • 88250            

    之前处理声明式事务的时候有个 bug,把以 org.b3log.latke 开头的包给排除了,目前已经修复,你更新 demo 的代码后就会看到已经换了包名了。最近 Latke 还在做一些新的特性,比如通过函数式编程配置路由,重写 URI 模板匹配等。有空的话可以看下最近提交的代码,相比之前的实现做了大量简化,去掉了很多不必要的扩展支持,更小巧轻量。

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • loyal            

    哦哦,原来如此,感谢大佬

    感谢    赞同    反对    举报    分享       评论    回复