@ws.sdo および @ws.sbf タグ・セットの参照情報については、 『セッション・ファサードと SDO のための注釈』を参照してください。
このシナリオでは、オークション・アプリケーションのデータのパーシスタンスを管理する CMP エンティティー Bean が組み込まれた EJB プロジェクトを所有していると仮定します。 例えば、CMP エンティティー Bean がユーザー・アカウントの登録、買掛管理の処理、および入札と販売品目の管理を処理します。 プロジェクトには、Registration という EJB 2.1 CMP エンティティー Bean が組み込まれています。
ユーザーとユーザーの買掛管理を管理するために Registration CMP エンティティー Bean のセッション Bean ファサードと SDO を作成することにします。 「セッション Bean ファサードの作成」ウィザードを利用すれば、ファサードと SDO を素早く作成できます。



RegistrationFacade セッション Bean には、リモート・クライアント・ビューとローカル・クライアント・ビューの両方が含まれています。これらは EJB クライアント JAR プロジェクト内に生成されます。

/**
* @ws.sbf.session-facade
* name="RegistrationFacade"
* value-objects="Registration"
* @ws.sdo.value-object
* name="Registration"
* read-only="false"
* Bean implementation class for Enterprise Bean: Registration
*/
public abstract class RegistrationBean implements javax.ejb.EntityBean {
/**
* @ws.sdo.value-object
* match="Registration"
* Get accessor for persistent attribute: email
*/
public abstract java.lang.String getEmail();
/**
* @ws.sdo.value-object
* match="Registration"
* target-value-object="Address"
* contained="false"
* This method was generated for supporting the relationship role named fk_shipaddress.
* It will be deleted/edited when the relationship is deleted/edited.
*/
public abstract sample.AddressLocal getFk_shipaddress();
/**
* @ws.sdo.value-object
* name="Accountspayable"
* read-only="false"
* Bean implementation class for Enterprise Bean: Accountspayable
*/
/**
* @ws.sbf.session-facade
* name="RegistrationFacade1"
* value-objects="Registration"
* @ws.sdo.value-object
* name="Registration"
* read-only="false"
* Bean implementation class for Enterprise Bean: Registration
*/
変更を保存すると、ワークベンチは変更された注釈に基づいて新しい RegistrationFacade1 セッション Bean を再ビルドします。


/**
* @ws.sbf.session-facade
* name="RegistrationFacade1"
* value-objects="Registration"
* queries="FindRegistrationByEmail"
* @ws.sdo.value-object
* name="Registration"
* read-only="false"
* @ws.sbf.query
* name="FindRegistrationByEmail"
* query="[select {$Registration} as r where r.email = 1]"
* Bean implementation class for Enterprise Bean: Registration
*/
変更を保存すると、ワークベンチは新規照会で変更された注釈に基づいて RegistrationFacade1 セッション Bean を再ビルドします。
RegistrationFacade1 には、以下の 2 つの新しいメソッドが組み込まれています。
/**
* @ws.sbf.session-facade
* name="RegistrationFacade1"
* value-objects="Registration RegistrationLite"
* queries="FindRegistrationByEmail"
* @ws.sdo.value-object
* name="Registration"
* read-only="false"
* @ws.sdo.value-object
* name="RegistrationLite"
* read-only="false"
* @ws.sbf.query
* name="FindRegistrationByEmail"
* query="[select {$Registration} as r where r.email = 1]"
* Bean implementation class for Enterprise Bean: Registration
*/
/**
* @ws.sdo.value-object
* match="Registration"
* @ws.sdo.value-object
* match="RegistrationLite"
* Get accessor for persistent attribute: userid
*/
public abstract java.lang.Integer getUserid();
/**
* @ws.sdo.value-object
* match="Registration"
* @ws.sdo.value-object
* match="RegistrationLite"
* Get accessor for persistent attribute: email
*/
public abstract java.lang.String getEmail();
RegistrationLite
SDO は読み取り専用として定義されておらず、ユーザー ID (userid) および E メール (email) 属性のみが SDO に組み込まれたので、必要フィールドが SDO に含まれていないことを告げる妥当性検査警告がエディターに表示されます。
キー属性と必須属性が SDO に含まれていないと「作成」は失敗するため、警告が表示されます。/**
* @ws.sbf.session-facade
* match="RegistrationFacade1"
* value-objects="Status"
* @ws.sdo.value-object
* name="Status"
* read-only="true"
* Bean implementation class for Enterprise Bean: Status
*/
* value-objects="Registration RegistrationLite Status"