私はJavaでHibernateを使用してアプリケーションを作成しています。次のことをしようとしています:
- データベースからオブジェクトのリストをクエリし、次にオブジェクトごとに次のようにします。
- データベースから削除します。
- その上で操作を実行します。
- 操作が失敗した場合は、オブジェクトを変更してデータベースに挿入し直してください。
ただし、信頼性の低いデータベース接続で作業しているため、オブジェクトに対して操作を実行する (手順 3) 前に、オブジェクトをデータベースから正常に削除する (手順 2) ことが不可欠です。失敗時にオブジェクトが正常に再挿入されること (ステップ 4) は重要ですが、重要ではありません。
(より高いレベルの要件は、オブジェクトに対して操作が正常に実行された場合、データベースに残ることはできないということです。そのため、最初にオブジェクトを削除し、操作を試みる前に実際に削除されていることを確認する必要があると結論付けました。)
Hibernate のセッション、トランザクション、およびオブジェクトの状態 (「デタッチ」など) を完全には理解していません。どうすればこれを達成できますか?
ここにリストするには、セッションの開始/終了、トランザクションのコミット/ロールバック、オブジェクトの削除/マージ/永続化/保存/削除/更新の順列をあまりにも多く試しましたが、私が試みたすべてが何らかのエラーで失敗します。私は Hibernate のドキュメントを参照してきましたが、基本的に、自分が何をしているのかよく理解していないため、ここで暗闇の中でスイングしているので、どんな提案も歓迎します。