Customer、Assessment、Rating などのいくつかの Java クラスを Hibernate を使用してデータベースにマップしました。現在、永続データへのすべての変更の履歴モードについて考えています。アプリケーションは Web アプリケーションです。データを削除 (または編集) する場合、別のユーザーが変更を確認して元に戻すことができる必要があります。変更は現在のセッションの範囲外であるため、元に戻す機能に推奨されるコマンド パターンなどでこれを解決する方法がわかりません。
単一値編集の場合、この質問のようなアプローチは問題ないように思えます。しかし、永続エンティティ全体の削除はどうでしょうか? 最も簡単な方法は、この顧客が削除されたかどうかを示すフラグをテーブルに作成することです。最も複雑な方法は、削除されたエンティティが格納されるクラスごとにテーブルを作成することです。間に何かありますか?そして、これら2つのことをO / RMシステム(私の場合はHibernate)に快適に統合し、SQLをいじることなく(移植性のために避けたい)、十分な柔軟性を維持するにはどうすればよいですか?
ベストプラクティスはありますか?