Spring-test-DbUnit

现象描述

  • 当一个实例下存在多个数据库,而且这个数据库中存在相同名称的表,Dbunit会报一个不能区分是哪个表的错误

原因

  • 在没有指定Schema的情况下,DbUnit会默认扫描整个实例。

解决

  • 指定一个Schema

      @Configuration
      public class DbUnitConfig {
    
          @Bean("dbUnitConnection")
          public DatabaseDataSourceConnectionFactoryBean getTestConnection(DataSource dataSource) {
              DatabaseDataSourceConnectionFactoryBean bean = new DatabaseDataSourceConnectionFactoryBean();
              bean.setDataSource(dataSource);
              DatabaseConfigBean databaseConfigBean = new DatabaseConfigBean();
              databaseConfigBean.setMetadataHandler(new MySqlMetadataHandler());
              databaseConfigBean.setAllowEmptyFields(true);
              bean.setDatabaseConfig(databaseConfigBean);
              bean.setSchema("wms_core");
              return bean;
          }
      }
    

你可能感兴趣的:(Spring-test-DbUnit)