我正在使用 DBUnit 填充数据库,以便其内容在测试期间是已知内容。
我正在处理的数据库模式在一个 Oracle 11g 实例中,它们驻留在其他数据库模式中。在其中一些模式中已经定义了一个表,该表已与公共同义词相关联并且已被赋予选择权限。
当我运行定义必须如何填充数据库的 xml 时,如果 xml 文件不包含在多个模式中定义的表,DBUnit 会在该表上引发 AmbiguousTableNameException 异常。
我发现有 3 种解决方案可以解决此问题:
- 使用只能访问一个数据库模式的数据库连接凭据。
- 为 DatabaseConnection 或 DatabaseDataSourceConnection 构造函数指定架构名称。
- 启用限定表名支持(请参阅操作方法文档)。
就我而言,我只能应用解决方案 1,但即使我采用它,我也会遇到同样的异常。
给我带来问题的表在 3 个模式中定义,我没有机会以任何方式对其采取行动。
拜托,有人可以帮助我吗?