オプティミスティック・アクセス・インテントの述部への属性の組み込み

EJB 2.x CMP エンティティー Bean の属性の場合、マッピング・エディターの「プロパティー」ビューにはオプティミスティック述部のプロパティーがあります。

オプティミスティック・アクセス・インテント・セットアップ (wsOptimisticUpdate または wsOptimisticRead) がある場合、述部に含める属性を指定する必要があります。属性が true に設定されている場合は、その属性は Bean の UPDATE SQL ステートメントの WHERE 述部に組み込まれます。属性がプリミティブ型であって true に設定される場合を除き、マッピング・エディターは各属性をデフォルトで false に設定します。

  1. EJB アプリケーション用にマッピング・エディターを開く。
  2. マッピング・エディターの「概要」セクションで、 オプティミスティック・アクセス・インテントの述部に含める Bean 属性を選択する。
  3. 「プロパティー」ビューで、OptimisticPredicate 値を true に設定する。
注:
  • V5.0 より前のバージョンの WebSphereR Studio Application Developer では、 オプティミスティック述部への EJB 1.1 CMP エンティティー Bean の属性の追加はサポートされていません。 しかし、V5.0 より前のバージョンを使用して開発した EJB アプリケーションのデプロイにワークベンチを使用し、オプティミスティック述部の属性のリストを組み込まない場合、使用可能な述部がすべて使用されます。 EJB 2.x CMP エンティティー Bean の処理はこれと異なります。述部として属性を 1 つも選択しないと、過剰修飾更新には何も追加されません。

  • 6.0.1 より前のバージョンの WebSphere Application Server ツールキット (あるいは 6.0.0.1 より前のバージョンの IBM Rational Software Development Platform) では、 ヌル可能列にマップされたオプティミスティック述部への属性の組み込みはサポートされていません。 しかし、これらのバージョン以降の製品では、この制限が緩和されています。
    DB2 Universal Database for z/OS および OS/390 V8 以降でオプティミスティック述部列がヌル可能になっている場合、生成される UPDATE 照会に「IS NOT DISTINCT FROM」構文が使用されます。例えば、ID が基本キー列で、NAME がヌル可能になっている場合、生成される UPDATE 照会は次のようになります。
    UPDATE SET NAME = ? WHERE ID = ? AND NAME IS NOT DISTINCT FROM ?
    この新しい IS NOT DISTINCT FROM 構文により、DB2 Universal Database for z/OS および OS/390 V8 以降のヌル述部では、 JDBC と SQLJ の両方について制限がなくなっています。

    他のすべてのバックエンド・データベース・ベンダーについては、 ヌル可能述部列を持つ Bean の部分更新を使用可能にする (部分操作のための UPDATE_ONLY を選択する) ことで、これらの Bean を使用することができるようになります。部分更新をサポートしているのは JDBC のみです。 SQLJ には、引き続きヌル述部に対する制限があります。パーシスタンス・オプションとしての部分操作の使用について詳しくは、 コンテナー管理パーシスタンスのための部分操作 (Partial operation for container managed persistence) および Entity Bean 2.x 用の Bean レベル・アクセス・インテントの追加 (Adding bean-level access intent for entity beans 2.x) の 2 つのトピックを参照してください。

ご利用条件 | フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.