org.dbunit.dataset.NoSuchTableException: 正在加载数据集进行查看

org.dbunit.dataset.NoSuchTableException: While loading dataset to view

我期待着将 dbUnit 集成到一个项目中。该项目有 Spring 并且没有 ORM。将 XML 数据集加载到数据库时,我得到了 org.dbunit.dataset.NoSuchTableException: XXX_VW "XXX_VW" 是数据库视图。但是,我能够将数据集加载到任何 table。我已经在 db 中确认了所需的视图存在并且元数据是相似的。

下面是我在测试设置方法中执行的代码。

DataSource dc = (MCDataSource) context.getBean("dataSource");
            databaseTester = new DataSourceDatabaseTester(dc, dc.getUsername());
            DatabaseConfig config = databaseTester.getConnection().getConfig();
            config.setProperty(DatabaseConfig.PROPERTY_TABLE_TYPE, new String[]{"TABLE", "VIEW"});
            databaseTester.setDataSet(this.getDataSet());
            databaseTester.setTearDownOperation(DatabaseOperation.DELETE_ALL);
            databaseTester.onSetup();

知道可能是什么问题吗?

而是在 OperationListener 的生命周期方法中实施和设置 OperationListener 并执行 setProperty。

    databaseTester.setOperationListener(new IOperationListener() {

        @Override
        public void operationTearDownFinished(IDatabaseConnection connection) {
            // TODO Auto-generated method stub

        }

        @Override
        public void operationSetUpFinished(IDatabaseConnection connection) {
            // TODO Auto-generated method stub

        }

        @Override
        public void connectionRetrieved(IDatabaseConnection connection) {
            DatabaseConfig config = connection.getConfig();
            config.setProperty(DatabaseConfig.PROPERTY_TABLE_TYPE, new String[]{"TABLE", "VIEW"});
    databaseTester.setDataSet(this.getDataSet());
    databaseTester.setTearDownOperation(DatabaseOperation.DELETE_ALL);
    databaseTester.onSetup();