小编典典

org.dbunit.dataset.NoSuchTableException,但是表存在

sql

H2 1.4.191。
DbUnit 2.5.1。
如何解决?
3种情况的代码和结果:

org.dbunit.dataset.NoSuchTableException: category
org.dbunit.dataset.NoSuchTableException: Category
org.dbunit.dataset.NoSuchTableException: CATEGORY
//
<dataset>
<Category categoryId="9223372036854775806"
      categoryName="NAME"
      categoryParentId="9223372036854775805"/>   
</dataset>
//
CREATE TABLE Category (
  categoryId       INT          AUTO_INCREMENT,
  categoryName     VARCHAR      NOT NULL,
  categoryParentId INT          NOT NULL,
  PRIMARY KEY (categoryId)
)
//Check - tried to recreate
org.h2.jdbc.JdbcSQLException: Table "CATEGORY" already exists;

阅读 281

收藏
2021-03-08

共1个答案

小编典典

有时,当您使用dbunit时,您需要定义尝试使用该表的模式,也许您可​​以尝试添加

<dataset>
<schema.Category categoryId="9223372036854775806"
      categoryName="NAME"
      categoryParentId="9223372036854775805"/>   
</dataset>

如果不检查您正在使用的数据源,则可能您未指向正确的数据库或架构。

对于dbunit,我们具有一些属性,请考虑Qualified table names按以下方式使用该属性。

DatabaseConfig dBConfig = dBConn.getConfig(); // dBConn is a IDatabaseConnection
dBConfig.setProperty(DatabaseConfig.FEATURE_QUALIFIED_TABLE_NAMES, true);
2021-03-08