O termo Container-Managed Persistence (CMP), persistência gerenciada por recipiente em português, significa que o recipiente EJB toma conta de todos os acessos ao banco de dados requeridos pelo Bean de entidade. Ao codificar na especificação do J2EE 1.4, você cria Beans de entidade de CMP que são mapeados para tabelas nos arquivos sun-cmp-mapping.xml. O código do Bean não contém chamadas de acesso ao banco de dados (SQL). Conseqüentemente, o código do Bean não está vinculado a um mecanismo de armazenamento persistente específico (banco de dados). Por causa desta flexibilidade, até mesmo se você reimplantar o Bean de entidade para diferentes servidores J2EE que usem diferentes bancos de dados, você não vai precisar modificar ou recompilar o código do Bean. Em poucas palavras, seus Beans de entidade são mais portáveis.
Com o propósito de gerar as chamadas de acesso aos dados, você tem que prover um esquema que defina os campos persistentes dos Beans e os relacionamentos. Os Beans de entidades CMP espelham a estrutura do banco de dados. Os campos CMP dos Beans correspondem às colunas das tabelas do banco de dados e os campos dos relacionamentos correspondem às chaves externas do banco de dados.
Se você está trabalhando na implantação do servidor de aplicativos Sun Java System, o IDE pode auxiliar você a gerar e configurar mapeamentos de CMP. Se você está trabalhando na implantação de um servidor de aplicativos diferente, você terá que configurar os mapeamentos de CMP por sua conta, editando os descritores de implantação específicos para servidores.
Existem três estratégias para trabalhar com os mapeamentos de CMP no IDE: