如果数据库表之间具有外键关系,通常希望将这些关系保存在映射到这两个表上的 CMP Bean 中。容器管理关系 (Container-Managed Relationship, CMR) 决定了如何将映射的 CMP Bean 之间的关系存储在数据库中。CMR 能够完成两个 Bean 之间的导航,这与外键完成两个表之间导航的方式相同。
映射关系字段时,通常使用外键连接表。如果没有外键,则必须创建键列对作为表之间的键。每一对中的列应该具有相同值。
如果通过数据库架构生成 CMP 实体 Bean,则 IDE 将根据数据库架构在部署描述符中生成必要的关系。如果从头开始生成 CMP 实体 Bean,并且需要为应用程序配置 CMR,则需要在 XML 编辑器中编辑部署描述符文件。
如果要部署到 Sun Java System Application Server/GlassFish,则需要在 sun-cmp-mappings.xml 中配置 CMR 字段。如果要部署到其他应用服务器,则必须在特定于服务器的部署描述符中自行配置 CMR 字段。
编辑 CMR 字段映射:
有关所有 J2EE 模块类型的可配置属性的完整列表,请参见《Sun Java System Application Server Developer's Guide》中的 "Appendix A Deployment Descriptor Files"。
有关 CMP 实体 Bean 规范的详细描述,请参见 Enterprise JavaBeans 规范 2.1 版。