代码之家  ›  专栏  ›  技术社区  ›  Steffen

DBUnit:数据集插入后“org.DBUnit.DatabaseUnitException:异常处理表名”

  •  0
  • Steffen  · 技术社区  · 8 年前

    我这里有一个关于DBUnit的古董问题。我想尝试通过数据集XML插入新的表条目:

    <?xml version='1.0' encoding='UTF-8'?>
    <dataset>
      <MyTable ID="1" OtherID="34588" Count="15" Value="20.0" />
    </dataset>
    

    但我得到以下例外:

    org.dbunit.DatabaseUnitException: Exception processing table name='MyTable'
    at org.dbunit.operation.AbstractBatchOperation.execute(AbstractBatchOperation.java:216)
    at org.dbunit.ext.mssql.InsertIdentityOperation.execute(InsertIdentityOperation.java:217)
    at org.dbunit.operation.CompositeOperation.execute(CompositeOperation.java:79)
    at org.dbunit.AbstractDatabaseTester.executeOperation(AbstractDatabaseTester.java:190)
    at org.dbunit.AbstractDatabaseTester.onSetup(AbstractDatabaseTester.java:103)
    at org.dbunit.DatabaseTestCase.setUp(DatabaseTestCase.java:156)
        ...
    

    有趣的是,新条目成功地添加到了表中(如果我进行选择,我可以看到新添加的条目)。

    问题是为什么我会得到例外。。。

    1 回复  |  直到 8 年前
        1
  •  0
  •   Steffen    8 年前

    发生的情况如下:

    对于表“MyTable”,还定义了一个触发器例程。触发器也完好无损。但触发器正在调用存储过程。此存储过程执行SELECT并将结果作为结果集返回。这个返回的结果集就是问题所在。如果插入触发器返回结果集,则DBUnit似乎有问题。。。

    移除select/ResultSet后,所有运行都如预期的那样…:-)