Directriz: Diseño de beans de entidad
Esta directriz trata la forma en que diseñar beans de entidad para una aplicación J2EE.
Relaciones
Elementos relacionados
Descripción principal

Introducción

Esta directriz se centra en el diseño de beans de entidad. En la sección Directriz de producto de trabajo: beans de entidad encontrará ayuda adicional sobre los beans de entidad como, por ejemplo, para conocer la forma de identificarlos y modelarlos. En la sección Directriz de producto de trabajo: Enterprise JavaBeans (EJB) encontrará ayuda general sobre los EJB.

Atributos persistentes y clave primaria

Identificar los atributos persistentes y la clave primaria del bean de entidad.

BMP (Bean-managed Persistence) frente a CMP (Container-managed Persistence)

Consulte la sección Concepto: visión general de la plataforma J2EE para obtener una descripción de estas dos aproximaciones en relaciona a la persistencia.

Habitualmente, la persistencia gestionada por contenedor (CMP) requiere menos código y éste es más simple que en la persistencia gestionada por bean (BMP). Sin embargo, si el rendimiento es un aspecto crítico o si se necesita más control sobre la lógica para la correlación con la base de datos, entonces es posible que se necesite utilizar persistencia gestionada por bean.

Si el contenedor EJB no tiene el nivel de soporte requerido, se debería considerar el utilizar una herramienta de correlación relacional de objetos de un tercero, ya sea con persistencia gestionada por bean o bien, si la herramienta está integrada con el contenedor, con persistencia gestionada por contenedor.

Si se decide utilizar la persistencia gestionada por contenedor y hay un modelo de datos, se puede correlacionar el EJB de entidad CMP con las tablas de la base de datos en el modelo de datos. Esta correlación será en última instancia la que se verá reflejada en el descriptor de despliegue de los módulos EJB. Consulte la sección Técnica: ensamblado de módulos J2EE para obtener más información.

Si se decide utilizar la persistencia gestionada por bean, hay que encapsular todo el acceso a la base de datos dentro de una clase DAO (Data Access Object). Tan sólo se trata de una clase Java que oculta y encapsula el mecanismo de almacenamiento que subyace detrás ella y que aísla de los cambios en la interfaz al origen de datos, si es que cambia. Incluso si siempre se espera que el origen de datos sea un sistema de gestión de bases de datos relacionales, podría haber diferencias sutiles en el formato y sintaxis SQL y el aislamiento en una clase DAO le beneficiaría. Consulte Core J2EE Patterns - Data Access Object Pattern ([ALU01]) para obtener más información.