首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当使用@ Transaction时,事务何时被提交?

当使用@ Transaction时,事务何时被提交?
EN

Stack Overflow用户
提问于 2021-03-08 05:32:10
回答 1查看 1.1K关注 0票数 0

我有一个spring引导服务类方法,该方法使用@Trans显式注释,其中我需要将事务提交到MYSQL DB,然后执行最后一个代码块,即将实体推送到Redis队列。下面是我的代码片段:

代码语言:javascript
运行
复制
@Transactional
public void save(Entity t) {
    try {
         entityRepository.save(t);
    } catch(Exception ex) {
         log.error("Error while executing transaction",e);
    } finally {
        //code to push to redis
    }
}

我怀疑事务是否会被提交,最后的块是否会被执行?或者,只有在finally块完成之后,@ transaction才会完成所有事务。如果是后者,如何确保事务在提交到Redis之前已提交?

请指点。

注意: entityRepository是一个扩展CrudRepository的类。

EN

回答 1

Stack Overflow用户

发布于 2021-03-08 06:26:45

只有在最后一个块之后才会执行事务。

对于提到的用例,请参阅:Creating a post commit when using transaction in Spring

将TransactionSynchronization注册到afterCommit或afterCompletion。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66524749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档