开始想的是将从主的xml文件分开,所以这样配置:
主数据库SqlSessionFactory配置:
@Bean(name = "masterSqlSessionFactory")
@Primary
public SqlSessionFactory sqlSessionFactory(@Qualifier("masterDataSource") DataSource dataSource) throws Exception {
SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(dataSource);
sessionFactory.setTypeAliasesPackage("com.huaxin.cloud.*.model");
sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:**/sqlmap/*.xml"));
return sessionFactory.getObject();
}
从数据库SqlSessionFactory配置:
@Bean(name = "slaveSqlSessionFactory")
public SqlSessionFactory sqlSessionFactory(@Qualifier("slaveDataSource") DataSource dataSource) throws Exception {
SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(dataSource);
sessionFactory.setTypeAliasesPackage("com.huaxin.cloud.*.model");
sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:**/slaveSqlMap/*.xml"));
return sessionFactory.getObject();
}
调用出现invalid bound statement (not found)错误
改从数据库SqlSessionFactory配置,改为:
@Bean(name = "slaveSqlSessionFactory")
public SqlSessionFactory sqlSessionFactory(@Qualifier("slaveDataSource") DataSource dataSource) throws Exception {
SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(dataSource);
sessionFactory.setTypeAliasesPackage("com.huaxin.cloud.*.model");
sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:**/sqlmap/*.xml"));
return sessionFactory.getObject();
}
将主从的xml文件放在一起就可以了。