1.有时候在一个事务里调用了异步方法,异步方法又需要查询数据,当前事务未提交就获取不到最新数据,可以将异步方法的调用注册到事务管理器中,等当前事务提交之后再执行

public void test() {
        // 注册事务同步处理
        if (TransactionSynchronizationManager.isActualTransactionActive()) {
            //存在事物
            log.info("当前存在事务,注册事务处理器以执行业务逻辑");
            TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() {
                @Override
                public void afterCommit() {
	                    log.info("当前事务已提交,执行业务逻辑");
	                    // do something
                }
            });
        } else {
            log.info("当前无事务,直接执行业务逻辑");
            // do something
        }
    }
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐