SQL Server で crud 操作をテストしようとすると、非常に苛立たしい問題に直面してきました。hibernate、dbunit、ms sql server2008r2 および jpa の組み合わせを使用していることに注意してください。
そのため、前に述べたように、dbunit を使用して CRUD 操作をテストしようとしています。dbunit のドキュメントに従って、必要なレコードを含む XML ファイルを作成し、操作の最後に比較する別のファイルを作成します。私の場合、最初の xml にはエンティティ間の関係を表す 2 行しか含まれていません。初期xml
<xml>
<A id="1" name="nameA"/>
<B id="1" name="nameB" A_id="1">
</xml>
予想された結果
<xml>
<A id="1" name="nameA"/>
<B id="1" name="nameB" A_id="1">
<B id="2" name="nameBB" A_id="1">
</xml>
クリーン インサート ストラテジではセットアップ オペレーションのみを設定しましたが、ティアダウン オペレーションは定義されておらず、デフォルトでは何も設定されていないことに注意してください。
したがって、テーブル A への参照を使用してテーブル b に別のレコードを挿入しようとすると、データベースがクリーンであれば問題ありません。ただし、同じテストを再実行しようとするたびに、外部キー制約違反によりエラーが発生します。理論的には、dbunit は xml から取得したデータを挿入するたびに、(クリーンな挿入戦略に従って) 逆の順序で削除してからレコードを挿入する必要があります。ただし、前述のように、フォアキー違反を示すレコードは削除されないため、逆順は実際には機能していないと思います。
何か案は?事前にtnx