NutzCN Logo
问答 在NutDaoRunner(集成spring的)如何获取事务的状态?
发布于 2668天前 作者 Nic720 2892 次浏览 复制 上一个帖子 下一个帖子
标签: dao

集成spring的事务后Trans无法使用,但是在读写分离的判断中需要获取是否在事务中,那么需要怎么获取?

  public void run(DataSource dataSource, ConnCallback callback) {
    DataSource selectDataSource = selectDataSource(Trans.get(),dataSource,callback);
    Connection con = DataSourceUtils.getConnection(selectDataSource);
    try {
      callback.invoke(con);
    } catch (Exception e) {
      if (e instanceof RuntimeException) {
        throw (RuntimeException) e;
      } else {
        throw new RuntimeException(e);
      }
    } finally {
      DataSourceUtils.releaseConnection(con, dataSource);
    }
  }
6 回复

覆盖selectDataSource方法,用spring的方式判断

@wendal 找了好多,还是没有找到spring判断当前线程是否在事务中的资料哈,可以给下相关的代码之类的参考吗?

试试这个

TransactionSynchronizationManager.isSynchronizationActive()

刚找了一个ConnectionHolder conHolder = (ConnectionHolder) TransactionSynchronizationManager.getResource(master);
我再试下你的这个,谢谢了。

@wendal 没有收藏功能么 怎么收藏帖子?

@Wizzercn 恩,需要开发

添加回复
请先登陆
回到顶部