dbUnit のorg.dbunit.dataset.NoPrimaryKeyException
. 私はクラスを持っているとしましょうA
、それはSet<B>
プロパティを持っていB
ますenum
. Hibernate のhbm2ddl
ツールを使用してデータベース スキーマを生成し、それを使用dbUnit
して、DAO ユニット テストの準備が整ったデータベースにデータを入力します。
dbUnit xml を使用してデータベースにデータを入力しようとしていますorg.dbunit.dataset.NoPrimaryKeyException
が、テーブルに定義したエントリA_B
(Hibernate によって自動生成されたもの)を dbUnit が削除しようとすると、エラーが発生します。
次の質問で提案された解決策を見てきました: Using DbUnit with tables that not have primary keys , しかし、これには次のいずれかが必要です:
- for each and every クラスを主キーとして定義
id
します (必ずしも数値ではない主キーが既に定義されています)。また - メソッド内のどのクラスにどの主キーを使用するかを正確に指定します
accept
。
テーブル内のすべての列を使用する必要がある場合を除き、デフォルトの主キーを使用するように指定する方法はありますか?
(余談ですが、http://appfuse.org/display/APF/Java+5+Enums+Persistence+with+Hibernateで説明されている方法と同様の方法を使用して、Hibernate および JPA アノテーションを使用して列挙型を永続化します)