创建具有容器管理的持久性(CMP)的实体 bean

可以使用“创建企业 Bean”向导来创建 CMP 实体 bean。

要创建具有容器管理的持久性(CMP)的实体 bean:

  1. 在 J2EE 透视图中,单击文件 > 新建 > 企业 Bean。“创建企业 Bean”向导出现。
  2. 选择具有容器管理的持久性(CMP)字段的实体 bean 单选按钮。
  3. 选择想要向其添加 bean 的 EJB 项目
  4. Bean 名称字段中,输入要指定给企业 bean 的名称。根据约定,bean 名称应以大写字母开头。
    注: 您可以使用 Unicode 字符来作为 bean 名称,但是与企业 bean 相关联的企业 bean 包和类不支持 Unicode 字符。
  5. 源文件夹字段中,为新的 bean 选择源文件夹。
  6. 缺省包字段中,为新的 bean 输入包名称。
  7. 如果要将 bean 添加到 EJB 2.0 或更新的项目,请在 CMP 版本下拉列表中,为新的实体 bean 选择要使用的 EJB 规范级别。
  8. 可选: 对于 EJB 2.x bean,可以选择生成有注释的 bean 类 如果选择此选项,则向导会在 bean 类的 Java™ 代码开头生成注释。 注释根据向导中所指定的内容定义 bean 的实现。然后,EJB 工具使用这些注释生成必要的 bean 类,并提供插入 EJB 部署描述符(ejb-jar.xml)的值。如果您熟悉注释,且要使用注释而不是部署描述符来更新 bean,请选择此选项。

    有关更多信息,请参阅基于注释的编程概述

  9. 单击下一步
  10. 如果想要新 bean 继承同一 EJB 项目中相同类型的现有 bean,请在 Bean 超类型下拉列表中选择一个 bean。
  11. Bean 类字段中,为 bean 类输入所需的包和类名。 缺省情况下,向导根据您定义的 bean 名称和缺省包来建议 bean 类。bean 类可以是向导生成的新类,也可以是项目类路径中的现有类。单击按钮以打开一个对话框,该对话框列示了项目中与 bean 类型相对应的类。对于带有源代码的现有类,bean 类的名称显示为蓝色。对于现有二进制类,bean 类的名称显示为红色。
  12. 定义客户机视图和接口。对于 EJB 2.0 或更新的 bean,可以包括远程客户机视图和/或本地客户机视图。对于 EJB 1.1 bean,仅支持远程客户机视图。每个会话 bean 或实体 bean 都必须至少具有一个客户机视图:
    • 远程客户机视图:选择此复选框以包含会话 bean 的远程客户机视图。

      远程 home 接口远程接口字段中,输入要用于远程客户机视图接口的包和类名。向导使用 bean 名称和缺省包为接口包和类名建议值。

    • 本地客户机视图:选择此复选框以包含会话 bean 的本地客户机视图。

      本地 home 接口本地接口字段中,输入要用于本地客户机视图接口的包和类名。向导使用 bean 名称和缺省包为接口包和类名建议值。

  13. 定义实体 bean 的 CMP 属性:
    1. 单击添加按钮。
    2. 指定属性的名称类型
    3. 选择键字段,以便使属性成为实体 bean 的键字段。
    4. 可以根据新的 bean 中的客户机视图,选择将属性的 getter 和 setter 方法提升到远程和本地接口。
    5. 单击应用以创建属性。完成定义属性后单击关闭
    缺省情况下,向导指定以下 CMP 属性,并且将其声明为键字段:
    • Name:id
    • Type:java.lang.Integer
    可以编辑或除去此属性。
    注: 如果 bean 不是继承的,则需要键。如果未定义键,则 bean 将具有验证错误。创建 bean 后,可使用部署描述符编辑器来添加键属性或使现有的属性成为键。
  14. 键类字段中,为 bean 的键类输入包和类名。缺省情况下,使用键类的单个键属性类型复选框处于选中状态,且键 CMP 属性的类型用作键类。如果具有类型为有效的 primkey-field(例如 java.lang.Integer)的单个键属性,则可以使用此选项。如果包括多个键属性,则会创建新的复合键类。
  15. 单击下一步
  16. 可选: Bean 超类字段中,输入或选择期望的类。如果指定了 bean 超类型,则会禁用此字段。
  17. 可选: 定义希望远程或本地客户机接口扩展的任何接口:
    • 单击添加按钮以打开“类型选择”对话框,可在其中选择要扩展的接口。
    • 如果添加了不再希望进行扩展的接口,则在列表中选择该接口,然后单击除去
  18. 单击完成 新的实体 bean 会添加到指定的 EJB 项目。
限制: 当设置继承的 CMP 实体 bean 时,子 bean 的 CMP 属性的名称不能与定义于其祖先链中任何位置的属性名称相同。例如,父代是包含类型为 int 的属性标识的 CMP 实体 bean。如果使用向导创建一个 CMP bean(它称为“子代”并指定“父代”作为其超级类型)并且尝试添加类型为 int 的属性标识,则不会添加该标识属性,原因是它将继承“父代”的标识属性。如果 Child2(另一个无关的 CMP Bean)包含了类型为 java.lang.String 的属性标识,且通过“部署描述符编辑器”更改了其继承结构以从“父代”继承,则将除去 Child2 的类型为 java.lang.String 的标识属性,原因是它将继承“父代”的标识属性,且由于类型冲突可能有验证错误。
使用条款 | 反馈
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.