データ・クラスは、キャッシュ可能なエンタープライズ Bean プロパティー用のデータ・ストレージとアクセス方式を提供します。 キャッシュされるプロパティーのセットが異なるエンタープライズ Bean それぞれに対して、 複数のデータ・クラスを定義することができます。 データ・クラスは、ローカル・クライアント・ビューとリモート・クライアント・ビューの両方を持つエンタープライズ Bean でサポートされます。
コピー・ヘルパーで、プロパティー・キャッシュは、アクセス Bean が持つハッシュ・テーブルとして保管されます。 しかし、データ・クラスのキャッシュは、 キャッシュされるプロパティーのデータ・ストレージやアクセスを提供するために必要なフィールド、 getter メソッド、および setter メソッドのコンテナーです。 また、キャッシュをコミットする際に、ダーティー、または変更されたプロパティーのみが残るように、プロパティーがいつ変更されたかを記憶します。
データ・クラスを作成するには、エンタープライズ Bean で getXXXData メソッドを呼び出します。 データ・クラスに保管されているデータを含んだエンタープライズ Bean を更新するには、エンタープライズ Bean で、syncXXXData あるいは setXXXData メソッドのいずれかを呼び出し、データ・クラス内のデータを引き渡します。syncXXXData メソッドによって、データ・クラスに対して行ったすべての変更が、 エンタープライズ Bean に書き込まれます。 このメソッドは、Bean の現行のデータ状態を反映しているデータ・クラスの新しいインスタンスを戻します。setXXXData メソッドは、データ・クラスで変更されていないエンタープライズ Bean のフィールドが変更された場合に、 例外をスローします。
getter メソッドおよび setter メソッドは、それらを定義するための JavaBeans 規則に従って、 ご使用のエンタープライズ Bean プロパティーに定義しなければなりません。getter メソッドおよび setter メソッドがない場合は、対応するフィールドをコピー・ヘルパーに追加できません。 しかも、getter メソッドおよび setter メソッドは、例外を 1 つもスローしません。
すべてのデータ・クラス・アクセス Bean は、そのすべてのフィールドとともにシリアライズ可能です。