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