データ・クラスは、キャッシュ可能なエンタープライズ 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 は、そのすべてのフィールドとともにシリアライズ可能です。