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

可以使用“创建企业 bean”向导来创建容器管理的持久性(CMP)实体 bean。

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

  1. 在 J2EE 透视图中,单击文件 > 新建 > 其他 > EJB > 企业 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 类字段中,为 bean 类输入所需的包和类名。 缺省情况下,向导根据您定义的 bean 名称和缺省包来建议 bean 类。bean 类可以是向导生成的新类,也可以是项目类路径中的现有类。单击按钮以打开一个对话框,该对话框列示了项目中与 bean 类型相对应的类。对于带有源代码的现有类,bean 类的名称显示为蓝色。对于现有二进制类,bean 类的名称显示为红色。
  11. 定义客户机视图和接口。对于 EJB 2.0 或更高版本的 bean,可以包括远程客户机视图和/或本地客户机视图。对于 EJB 1.1 bean,仅支持远程客户机视图。每个会话 bean 或实体 bean 都必须至少具有一个客户机视图:
    • 远程客户机视图:选中此复选框以包括会话 bean 的远程客户机视图。

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

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

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

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

反馈