关于容器管理关系

另请参见

实体 Bean 与关系数据库中的表类似,它可以与其他实体 Bean 关联。使用 bean 管理持久性,您编写的代码可以实现这些关系。但是使用容器管理持久性,EJB 容器将为您实现此关系。

例如,请考虑随 J2EE JDK 提供的 cmpcustomer 示例。该示例定义了客户、地址和订阅之间的关系。每个客户可能具有一个或多个地址。每个客户也可能具有零或多个订阅。同样地,单个订阅可能与多个客户关联。

为了确保上面的示例能够正常使用,必须正确配置表示这些数据库表的实体 Bean 之间的关系。通过现有数据库生成 CMP 实体 Bean 时,IDE 将自动配置模块的 CMP 关系和 CMP 字段,并创建 Sun Java System Application Server 使用的缺省映射。

方向

数据库之间可以是单向或多向的关系。例如,在上面的 cmpcustomer 示例中,客户和地址之间是单向关系,因为客户表引用地址表,但是地址表不引用客户表。另一方面,订阅和客户之间是多向关系。

多重性

多重性(也称为基数性)描述了关系的每一方可以有多少个实例。实体 Bean 可以具有以下多重性:

层叠删除

一个表的存在通常取决于引用它的表是否存在。例如,在上面的 cmpcustomer 示例中,您可能为客户添加和删除了单个地址。因为地址实例必须与客户相关联,因此在删除客户时,还会自动删除与该客户关联的所有地址。

应用服务器可通过层叠删除设置来自动完成此操作。如果在关系中启用层叠删除,在删除 Bean 时,将删除它所引用的所有相关 Bean 实例。

IDE 中的容器管理关系

通过数据库生成 CMP 实体 Bean 时,IDE 将基于数据库中的关系自动注册所有容器管理关系。可以在 EJB 模块的 ejb-jar.xml 部署描述符中管理 CMP 关系。

另请参见
管理容器管理关系
关于部署描述符
配置 EJB 部署描述符
关于配置 EJB 模块

法律声明