Token という名前のオブジェクトがあります。ID、名前、および値があります。いくつかのデータを db に保存した後、それらを Web ページにロードしました
_____________________________________________
|____name____|____value____|____operation____|
tkn1 10 ×
tkn2 20 ×
この×
サインにより、サーバーコレクションからトークンを削除できるようになりました。値 30 のトークン tkn3 を追加して削除tkn2
したため、テーブルは次のようになります。
_____________________________________________
|____name____|____value____|____operation____|
tkn1 10 ×
tkn3 30 ×
コレクションへのこれらの変更により、削除されたレコードと追加されたレコードを決定する方法をデータベースに反映するにはどうすればよいですか?
私は2つの解決策を適用しました:
- ビジネスロジックレイヤーで古いデータと新しいデータを比較し、データベースに送信する2つのリストの違いを見つけました。最初のリストには追加されたトークンが含まれ、2番目には削除されるトークンのIDが含まれています。
- status という名前のフラグをオブジェクトに追加しました。フラグを追加すると NEW です 削除すると、フラグを DELETE に設定し、DB レイヤーでコレクションを 1 つずつオブジェクトを反復処理し、フラグを確認します。NEW の場合レコードを追加し、 DELETE の場合は削除し、SAVED (変更なし) の場合は変更しません。
私の質問:
- この方法は、このタスクを実行するのに適していますか..?
- このタスクを達成するためのパターンはありますか?
- Hibernate はそれを行うのに役立ちますか?