如果要部署到 Sun Java System Application Server,则 EJB 模块的 CMP 映射将在该模块 src/conf 目录中的 sun-cmp-mappings.xml 描述符文件中进行指定。可以使用 XML 编辑器在 sun-cmp-mappings.xml 中配置 CMP 映射。
对于以下情况,可能需要更改实体 Bean 的 CMP 映射:
在 sun-cmp-mappings.xml 中编辑 CMP 映射:
在 sun-cmp-mappings.xml 中映射 Bean 时,应为每个 Bean 指定架构和主表。必须至少将每个 Bean 映射到单个数据库架构中的一个表。您还可以将 Bean 映射到辅助表。所有通过容器管理关系相关的 Bean 必须映射到具有相同架构的表。
通过一列或多列,辅助表必须与主表相关,其中列的关联行在两个表中有相同的值。这种链接称为引用键。通常,这个键是主表中的外键。
有关 CMP 关系的详细信息,请参见以下主题:
将 CMP Bean 映射到数据库时,每个实体 Bean 中的 CMP 字段都会映射到主表或辅助表中的列。CMP 字段也可以映射到多个数据库列。
如果将一个字段映射到多列,则所有列都将以列出的第一列的值进行更新。因此,如果在 EJB 应用程序的外部更改了其中一列的值,则只有更改第一列的值才会读入该更改。将值写入数据库会覆盖任何对其他列有冲突的更改。
如果数据库表之间具有外键关系,通常希望将这些关系保存在映射到这两个表上的 CMP Bean 中。容器管理关系 (Container-Managed Relationship, CMR) 决定了如何将映射的 CMP Bean 之间的关系存储在数据库中。CMR 能够完成两个 Bean 之间的导航,这与外键完成两个表之间导航的方式相同。
有关所有 J2EE 模块类型的可配置属性的完整列表,请参见《Sun Java System Application Server Developer's Guide》中的 "Appendix A Deployment Descriptor Files"。
有关 CMP 实体 Bean 规范的详细描述,请参见 Enterprise JavaBeans 规范 2.1 版。