誰かがこの特定の質問にすでに回答している場合は事前に申し訳ありませんが、私の問題に対する回答がまだ見つからないため、ここに進みます。
私は、DAO、Hibernate、POJO、およびデータベースへの通信と書き込みにすべてのものを使用するアプリケーションに取り組んでいます(ジョブ用のコードをそのまま提供することはできませんので、申し訳ありません)。これは、Session.flush() を呼び出すときにチェックする大量のデータがないと仮定すると、アプリケーションでうまく機能します。そうは言っても、ユーザーが製品に任意の数のアイテムを追加できるページがあり、25 アイテムのラインに沿って何かがある特定のケースが 1 つあります。各アイテムには、データベースにすべて保存されている約 8 つのフィールドがあります。フラッシュを呼び出すと、すべてがデータベースに保存されますが、完了するまでに永遠にかかります。私が呼んでいる3行は次のとおりです。
merge(myObject);
Session.flush();
Session.refresh(myObject);
この問題を解決するためにさまざまな組み合わせとさまざまな解決策を試しました。うまくいかないようです。私が思いつく唯一の解決策は、プロジェクト全体を破棄するか (控えめに言っても、得られたコードは継承されていて、書き方がまずいものでした)、ユーザー コミュニティにそれを吸うように伝えることです。
Hibernate API から、データをデータベースに書き込みたい場合はすべてのアイテムでチェックを実行し、違いがある場合は更新クエリのキューを作成してからクエリを実行することを理解しています。他の値が変更されていなくても、データベースの「DATE_CREATED」列が異なるため、このデータは毎回更新されているようです。
私が疑問に思っていたのは、そのような大量のデータのコミットを防ぐ別の方法があるか、またはその特定の列を「チェック」休止状態から除外する方法があるかどうかです。変更を加えただけの場合、25 項目すべてをコミットする必要はありません。 1に?
前もって感謝します。
マイク