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();
我期待着将 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();