エンティティ・オブジェクトまたはビュー・オブジェクトの特性で、オブジェクト・クラスのJavaBeansプロパティとして実装される。属性は、データベース列に対応付けることも、データベース列に依存しないことも可能である。属性には、次の5つの種類がある。
属性の種類 |
定義される場所 |
データベース問合せから導出された値か |
データベースに永続的に存在するか |
---|---|---|---|
永続 |
エンティティまたはビュー・オブジェクト・レベル |
はい |
はい(値は、作成したクラスよりも長く存在) |
一時 |
エンティティまたはビュー・オブジェクト・レベル |
いいえ |
いいえ |
エンティティ導出 |
ビュー・オブジェクト・レベル |
いいえ |
いいえ |
SQL導出 |
ビュー・オブジェクト・レベル |
はい |
いいえ |
動的 |
ビュー・オブジェクト・レベル、実行時 |
いいえ |
いいえ |
エンティティ・オブジェクトの属性には、次の種類がある。
永続: データベースに永続的に存在するエンティティ属性(「永続的」属性の設定が選択されている)。
一時: データベースに永続的には存在しないエンティティ属性(「永続的」属性の設定は解除されている)。
逆方向生成を使用して初めてエンティティ・オブジェクトを作成するとき、表の各列に対応する永続エンティティ属性が作成される。その後で表を変更した場合は、属性を手動で変更する必要がある。
ビュー・オブジェクトの属性には、次の種類がある。
永続: 永続エンティティ属性に基づいたビュー属性。データはエンティティ・オブジェクト・レベルでキャッシュされる。
エンティティ導出: 一時エンティティ属性に基づいたビュー属性。データはエンティティ・オブジェクト・レベルでキャッシュされる。
一時: エンティティ属性に基づいていないビュー属性で、SQL式を含まない属性。データはビュー・オブジェクト・レベルでキャッシュされる。
SQL導出: エンティティ属性に基づいていないビュー属性で、SQL式を含む属性。データはビュー・オブジェクト・レベルでキャッシュされる。
動的: addDynamicAttributeメソッドにより作成されるビュー属性。この属性を使用して、実行時に作成された情報を行データとともに格納できる。この属性は、それ自体を作成したビュー・オブジェクトでのみ使用される。動的属性は、設計時の属性と同様に処理される。属性は、任意のシリアライズ可能オブジェクトである。データはビュー・オブジェクト・レベルでキャッシュされる。
SQL導出属性の値は、SQL文の結果である。たとえば、YearsOfService属性は、データベースにおける従業員の入社日と現行の日付との差異である。また、一時属性を作成し、Javaファイルで値を設定するための計算を行うコードも記述できる。通常、SQL導出属性を使用する方が、Javaでデータ集約型計算を行うよりも効率的である。
Business Components for Javaでは、属性という語はXMLの定義ではなく、UMLの定義に基づくものである。UMLでは、属性は、クラスの名前付きプロパティで、そのクラスのインスタンスが保持する値の範囲を記述する。