代码之家  ›  专栏  ›  技术社区  ›  artemb

Spring:只读事务的独立数据源

  •  8
  • artemb  · 技术社区  · 14 年前

    谢谢你看这个。

    readOnly=false 事务,从属 readOnly=true 交易。

    SqlMapClient (我用iBatis)直接。这意味着(如果我没弄错的话)注射 SqlMapClient客户端

    public class MyDataService {
    
        private SqlMapClient sqlMap;
    
        @Autowired
        public MyDataService (SqlMapClient sqlMap) {
            this.sqlMap = sqlMap;
        }
    
        @Transactional(readOnly = true)
        public MyData getSomeData() {
            // an instance of sqlMap connected to slave should be used
        }
    
        @Transactional(readOnly = false)
        public void saveMyData(MyData myData) {
            // an instance of sqlMap connected to master should be used
        }
    }
    

    所以问题是-我该怎么做?

    1 回复  |  直到 14 年前
        1
  •  4
  •   skaffman    14 年前

    这是一个有趣的主意,但你手头的工作很艰巨。这个 readOnly

    所以,除非你下定决心要让它正常工作,否则你最好的选择几乎肯定是注入两个独立的 SqlMapClient @Transactional 注释还需要指明要使用哪个事务管理器(假设您正在使用 DataSourceTransactionManager 而不是 JpaTransactionManager DataSource 用于 .