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.
|