0

私はWebアプリケーションを開発しており、ドクラインフレームワークを使用して、同時リクエストとトランザクションクエリ(ヘッドレコードと行レコードの挿入または更新など)を管理します。

Web の必需品については、操作をさまざまなステップに分割することを考えました。最初のステップ: ユーザーが HeadTable レコードを挿入できるページがあり、その後、情報をサーバーに送信し、エンティティを作成して EntityManager に保存します。持続機能。

2 番目のステップ: ユーザーはすべての RowsTable レコードを編集して挿入します。すべてが完了したら、前と同様に、すべてのデータをサーバーに送信し、エンティティを作成して、それらを HeadTable レコードに関連付けます。

最後のステップ: ユーザーが行ったことをすべて確認したら、EntityManager のフラッシュ操作をトリガーし、単一のアトミック トランザクションですべてを DataBase にコミットします。このすべてのステップをまとめるために、EntityManager をセッション変数に入れ、フラッシュ操作の後にそれを削除します。

すべて問題ないようですが、問題を解決する正しい方法なのか、それともより良い方法があるのか​​ を知りたいです。

4

1 に答える 1

2

試すのは合理的なことのように思えます。

ただし、エンティティマネージャーをリクエスト間で保存することはおそらく避けたいと思います。心配するデータベース接続があるため、おそらく壊れます。

ただし、できることは、エンティティをセッションに保存することだけです。それらをエンティティマネージャーから detach() してから、次のリクエストでそれらを merge() 戻します。

于 2011-04-12T20:49:30.023 に答える