EJB 2.x コンテナー管理パーシスタンス (CMP) Entity Bean の場合、CMP Bean のパーシスタント属性をデータベースに更新する方法を指定するパーシスタンス・オプションとして、部分操作を使用します。
部分操作では 次の 2 つの値を選択することができます。NONE または UPDATE_ONLY 部分操作のデフォルト設定は NONE です。パーシスタント属性フィールドの 1 つのサブセットのみが変更されても、データベースへの CMP Bean のパーシスタント属性が、すべてそのデータベースに保管されます。部分操作の UPDATE_ONLY オプションは、データベースへの更新を、修正された CMP Bean のパーシスタント属性のみに制限します。Bean の setter メソッドは、対応する CMP 属性の修正が行われたかどうかを判別します。この修正は、変更されている実際の値に基づくものではありません。すなわち、setter メソッドが呼び出され、古い値と新しい値が同じである場合、CMP 属性はダーティーであると考えられます。
Bean 用に構成済みのアクセス・インテント・ポリシーの Bean レベルで、部分操作をパーシスタント・オプションとして指定することができます。 部分操作を指定する方法についての詳細は、 Adding bean-level access intent for entity beans 2.x のトピックを参照してください。
機能の利点
パフォーマンスの利点
部分更新には、次のパフォーマンス上の利点があります。
パフォーマンスへの悪影響
部分更新は、パフォーマンスの向上を図るために設計されたものですが、パフォーマンスに悪影響を与えることもあります。部分更新の使用を検討する場合、次の要因も考慮してください。
server.xml ファイルで設定されている Java? Virtual Machine (JVM) プロパティー、-Dcom.ibm.ws.pm.grouppartialupdate=true を使用して、類似する部分更新クエリーをバッチ更新へグループ化することができますが、これはトランザクションの部分クエリーが、ほぼ常時同じ型である場合にのみ役立ちます。次の中から、 どれを使用すれば最良のパフォーマンスを得られるか判別する必要があります。バッチ更新のみ使用、部分更新のみ使用、または両方を使用(grouppartialupdate フラグが true に設定されている場合)。
制限