1

多くのユーザー リクエストに対して持続するペシミスティック ロックを作成することは可能ですか?

Java EE で Hibernate を使用するか、PHP で Doctrine または Propel を使用してそれが可能かどうかを知りたいです。Doctrine 2 を使用してこれを試しましたが、データベース レベルでのみ (ユーザーの要求ごとに) 不可能です。

4

1 に答える 1

3

可能ですが、多くの (手動) 作業が必要です。Hibernate と J2EE のすべてのフレームワークは、フィルタを使用して、リクエストを受信するとセッションを開始し、レスポンスが送信されるとセッションをコミットします。

したがって、サーブレットに対してこのフィルターを無効にし、ファクトリを使用して Hibernate セッションを作成し、それをユーザーの HTTP セッションに入れ、その H. セッションを作業に使用する必要があります。

このようなセッションを終了する安全な方法はないことに注意してください。ユーザーはブラウザの使用を数時間停止するだけで済むからです。

より便利で安定している可能性があるのは「一時」オブジェクトです。ユーザーが変更を加えると、「実際の」オブジェクトをシャドウするデータベースに一時オブジェクトを保存します。これにより、変更をすぐに保存できます。ユーザーが結果に満足したら、ボタンをクリックして一時オブジェクトから実際のオブジェクトにデータをコピーできます (もちろん、楽観的ロックを使用します)。

于 2011-05-31T13:45:49.647 に答える