1

データベースの再作成を正しく処理することについて質問があります。

私の開発環境では、次を使用してデータベースを再作成することがよくあります。

_schemaExport.Drop(true, true);
_schemaExport.Create(createResult, true);

(私はhiloジェネレーターを使用していることに注意する必要があります。)データベースを再作成した直後に、" Cannot insert duplicate key..."例外のために新しいエンティティの保存が失敗することがあります。

私の質問:新しいhiloを使用するデータベースと正しく同期するには、セッションファクトリ(および場合によってはセッション)を再初期化する 必要がありますか?それともそのまま動作しますか?

ヒントは大歓迎です!

LG
ワラッパ

4

1 に答える 1

1

データベースを再作成した後は、必ず新しいセッションを作成する必要があると思います。もう1つのオプションは、DBを再作成する前に既存のものをクリアすることです。

DBを再作成すると、IDジェネレーターが最初から起動します。これにより、生成されたIDの一部が既存のセッションの別のオブジェクトのIDと同じになる可能性があります。したがって、重複キーエラーが発生します。

于 2011-05-24T12:12:38.827 に答える