有关 @ws.sdo 和 @ws.sbf 标记集合的参考信息,请参阅会话外观和 SDO 的注释。
在此方案中,您具有包括 CMP 实体 bean 的 EJB 项目,用于管理拍卖应用程序的数据的持久性。例如,CMP 实体 bean 会处理用户帐户注册、处理应付帐款以及管理销售中的竞价和项目。项目包括名为“注册”的 EJB 2.1 CMP 实体 bean。
要为“注册”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 现在包括下列两种新方法:
/** * @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 定义为只读,而且 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"