DBUnitを使用してデータベースにデータを入力し、テスト中にそのコンテンツが既知のコンテンツになるようにします。
私が取り組んでいるdbスキーマは、他のdbスキーマが存在するOracle11gインスタンスにあります。これらのスキーマの一部では、パブリックシノニムに関連付けられ、選択する権限が与えられているテーブルが定義されています。
データベースへの入力方法を定義するxmlを実行すると、xmlファイルに複数のスキーマで定義されたテーブルが含まれていない場合も、DBUnitはそのテーブルでAmbiguousTableNameException例外をスローします。
この動作を解決するには、次の3つの解決策があることがわかりました。
- 1つのデータベーススキーマにのみアクセスできるデータベース接続クレデンシャルを使用します。
- DatabaseConnectionまたはDatabaseDataSourceConnectionコンストラクターにスキーマ名を指定します。
- 修飾テーブル名のサポートを有効にします(ハウツードキュメントを参照)。
私の場合、ソリューション1しか適用できませんが、それを採用しても同じ例外が発生します。
問題を引き起こすテーブルは3つのスキーマで定義されており、それに基づいて行動する機会はありません。
誰か助けてくれませんか?