エンティティ属性には次の設定を指定できます。設定は、ウィザードおよびエディタの「属性の設定」ページに表示される順序で示しています。
この設定は、ビュー・オブジェクト・ウィザードおよびビュー・オブジェクト・エディタと、エンティティ・オブジェクト・ウィザードおよびエンティティ・オブジェクト・エディタの「属性の設定」ページ、ならびにエンティティ属性エディタに表示されます。
必須の属性名の設定では、Business Components for Javaのウィザード、Javaソース・コードおよびXMLファイルで参照される属性の一意の名前を指定します。
この設定は、ビュー・オブジェクト・ウィザードおよびビュー・オブジェクト・エディタ、エンティティ・オブジェクト・ウィザードおよびエンティティ・オブジェクト・エディタと、ドメイン・ウィザードおよびドメイン・エディタの「属性の設定」ページ、ならびにエンティティ属性エディタに表示されます。すべてのJava変数には型が定義されており、この型によって、割当てが可能なオブジェクトの種類が制限されます。
エンティティ・オブジェクト属性の場合、この設定は属性のJavaデータ型またはドメイン型となります。「データベース列」の「型」を指定することもできます。これはデータベース列のSQLデータ型で、実行時にデフォルトのJavaのJDBC型を導出する際に使用します。SQLデータ型はJavaデータ型と一致している必要があります。一致していない場合は、文字列の変換などで実行時にランタイム例外が発生することがあります。順方向生成の際には、「データベース列」の「型」がデータベースの列の型となります。
ビュー・オブジェクト属性の場合、この設定は属性のJavaデータ型またはドメイン型となります。永続属性、およびエンティティ導出属性では、対応するエンティティ属性で指定した型はオーバーライドできません。
ドメインの場合、この設定は、ドメインのメタデータ・フィールドのJava型となります。
属性がドメイン型で、「データベース列」の「型」属性の設定がドメインで設定されている場合は、エンティティ・オブジェクト・ウィザードまたはエンティティ・オブジェクト・エディタで設定をオーバーライドすることはできません。
この設定は、エンティティ・オブジェクト・ウィザードおよびエンティティ・オブジェクト・エディタと、ドメイン・ウィザードおよびドメイン・エディタの「属性の設定」ページ、ならびにエンティティ属性エディタに表示されます。
エンティティ・オブジェクト属性の場合、この設定はオプションのデフォルト値となります。ビジネス・ロジック層で、属性を含む新しい行が作成された場合は、属性には、デフォルトでこの値が設定されます。
ドメインの場合、このデフォルト値はドメイン型のすべての属性に継承され、エンティティ・オブジェクト・ウィザード、エンティティ・オブジェクト・エディタ、またはエンティティ属性エディタでオーバーライドすることはできません。
この設定は、エンティティ・オブジェクト・ウィザードおよびエンティティ・オブジェクト・エディタと、ドメイン・ウィザードおよびドメイン・エディタの「属性の設定」ページ、ならびにエンティティ属性エディタに表示されます。エンティティ・オブジェクト属性の場合は、この設定を選択すると、属性がエンティティ・オブジェクトの主キー(またはその一部)になります。(主キーは複数の属性で構成される場合があります。)エンティティ・オブジェクトの属性を少なくとも1つ、主キーの属性として定義する必要があります。
属性がドメイン型で、「主キー」属性の設定がドメインで設定されている場合は、エンティティ・オブジェクト・エディタで設定をオーバーライドすることはできません。
この設定は、エンティティ・オブジェクト・ウィザードおよびエンティティ・オブジェクト・エディタと、ドメイン・ウィザードおよびドメイン・エディタの「属性の設定」ページ、ならびにエンティティ属性エディタに表示されます。
この設定を選択すると、各エンティティ・オブジェクトの行に、この属性に対して必ずNULL以外の値が設定されます。 NULL値が設定されている場合は、その行の処理が終了する際またはコミットする際に無効であるとみなされます。
エンティティ属性がドメイン型で、「必須」属性の設定がドメインで設定されている場合は、エンティティ・オブジェクト・ウィザード、エンティティ・オブジェクト・エディタ、またはエンティティ属性エディタで設定をオーバーライドすることはできません。
この設定は、エンティティ・オブジェクト・ウィザードおよびエンティティ・オブジェクト・エディタと、ドメイン・ウィザードおよびドメイン・エディタの「属性の設定」ページ、ならびにエンティティ属性エディタに表示されます。
エンティティ・オブジェクト属性の場合、属性を永続属性とするにはこの設定を選択します(エンティティにより属性が永続的な記憶域(データベース)に保存されます)。一時属性には選択しません。
属性がドメイン型で、「永続的」属性の設定がドメインで設定されている場合は、エンティティ・オブジェクト・ウィザード、エンティティ・オブジェクト・エディタ、またはエンティティ属性エディタで設定をオーバーライドすることはできません。したがって、一時属性に対しては、ドメインで「永続的」を選択しないでください。
この設定は、ビュー・オブジェクト・ウィザードおよびビュー・オブジェクト・エディタ、エンティティ・オブジェクト・ウィザードおよびエンティティ・オブジェクト・エディタと、ドメイン・ウィザードおよびドメイン・エディタの「属性の設定」ページ、ならびにエンティティ属性エディタに表示されます。この設定により、属性に対してsetAttributeメソッドをコールできるかどうかが定義されます。 属性には、「更新可能」設定として次のいずれかを定義する必要があります。
常に: 属性は、ビジネス・ロジック層のキャッシュ内で更新されます。
新規の間: 属性は、オブジェクトが新規の間のみ、つまりオブジェクトが初めてコミットされるまで更新できます。データベースにコミットされた後は、この属性は読取り専用になります。
なし: 属性は、フレームワークでは更新できません。 ヒント: セッター・メソッドの削除の検討が必要な場合もあります。
永続ビュー属性またはエンティティ導出ビュー属性では、属性を更新可能にするかどうかの設定を対応するエンティティ属性よりさらに制限することはできますが、緩和することはできません。したがって、エンティティ属性の設定が「なし」でビュー属性の設定が「常に」の場合、設定は「なし」になります。属性がドメイン型の場合も、同様です。
この設定は、エンティティ・オブジェクト・ウィザードおよびエンティティ・オブジェクト・エディタと、ドメイン・ウィザードおよびドメイン・エディタの「属性の設定」ページ、ならびにエンティティ属性エディタに表示されます。
永続エンティティ・オブジェクト属性には、任意で次の設定のいずれか(または両方)を設定できます。
「リフレッシュ」の「更新後」: エンティティ・オブジェクトは、更新を実行した後で、対応するデータベース・フィールドの属性値を取得します(エンティティ・オブジェクト・インスタンスのデータは、データベースの現在の行に格納されています)。つまり、データベースのトリガーまたはプロシージャの処理が、エンティティ・キャッシュに反映されます。たとえば、「Date Updated」フィールドでは、行の更新後にデータベースよりそのフィールドに対して新しい更新日付が追加されるため、エンティティ・オブジェクト・インスタンスに新しい値が必要になります。
「リフレッシュ」の「挿入後」: エンティティ・オブジェクトは、データベースに新しい行を挿入した後で、対応するデータベース・フィールドから属性値を取得します。たとえば、この機能を使用して主キーの値にデータベース・トリガーの順序を割り当てることができます(挿入後、データベースでは順序番号が生成され、エンティティ・オブジェクトで新しい属性値が取得されます)。
属性がドメイン型で、「リフレッシュ」属性の設定がドメインで設定されている場合は、エンティティ・オブジェクト・ウィザードまたはエンティティ・オブジェクト・エディタで設定をオーバーライドすることはできません。
この設定は、ビュー・オブジェクト・ウィザードおよびビュー・オブジェクト・エディタ、エンティティ・オブジェクト・ウィザードおよびエンティティ・オブジェクト・エディタと、ドメイン・ウィザードおよびドメイン・エディタの「属性の設定」ページ、ならびにエンティティ属性エディタに表示されます。
エンティティ・オブジェクト属性の場合、この設定を選択すると、属性をビュー・オブジェクトの問合せ条件に指定できます。設定を選択しない場合は、情報の問合せはできません(BLOB型など)。
ビュー・オブジェクト属性の場合、この設定を選択すると、属性を問合せ条件に指定できます。永続属性では、列(この型の属性のマップ先)が問合せフィルタ(WHERE句)の一部として使用できる場合は、この設定を選択します。たとえば、列の型がNUMBERの場合はこのプロパティを選択しますが、BLOB型の場合は選択しません。この属性は、BC4J JSPなどで生成された問合せフォームで使用されます。
属性がドメイン型で、「問合せ可能」属性の設定がドメインで設定されている場合は、設定はビュー・オブジェクト・ウィザードまたはビュー・オブジェクト・エディタでオーバーライドすることはできますが、エンティティ・オブジェクト・ウィザードまたはエンティティ・オブジェクト・エディタではオーバーライドできません。
この設定は、エンティティ・オブジェクト・ウィザードおよびエンティティ・オブジェクト・エディタと、ドメイン・ウィザードおよびドメイン・エディタの「属性の設定」ページ、ならびにエンティティ属性エディタに表示されます。
永続エンティティ・オブジェクト属性の場合、この設定を選択すると、特定の値を持つ行は1行のみとなります(この列の各行には一意の値が定義されます)。順方向生成の場合は、データベースの対応するNOT NULL制約が作成されます。
属性がドメイン型で、「一意」属性の設定がドメインで設定されている場合は、エンティティ・オブジェクト・ウィザードまたはエンティティ・オブジェクト・エディタで設定をオーバーライドすることはできません。
この設定は、エンティティ・オブジェクト・ウィザードおよびエンティティ・オブジェクト・エディタの「属性の設定」ページ、およびエンティティ属性エディタに表示されます。永続エンティティ・オブジェクト属性の場合は、この設定を選択すると、エンティティ・オブジェクトの永続属性が変更されたかどうかが属性によって判別されます。 ユーザーが行の属性値に初めて変更を加える際、ビジネス・ロジック層では、行のロック(即時ロック・モード)またはコミット(コミット時ロック・モード)が試行されます。このとき、キャッシュ内のデータ値がデータベースと一致するかどうかがチェックされます。「更新識別子」属性の設定により、ビジネス・ロジック層で単一の属性をチェックするか、複数の属性をチェックするかが決定されます(複数の属性をチェックすると、オーバーヘッドが増加します)。したがって、キャッシュ内のエンティティ・オブジェクト・インスタンスにデータが初めて挿入されてから、そのデータが初めて変更されるまでの間に属性値が変更されている場合は、他のユーザーによって行全体が変更されていることを表します。この設定は、エンティティ・オブジェクトの1つの属性にのみ定義できます。通常、属性はタイム・スタンプ列または順序番号になっています。