Crear relaciones para CMP 1.x

Las relaciones para CMP 1.x no son estándar para la especificación EJB 1.x. Se han creado las extensiones de WebSphere Application Server para gestionar las relaciones de 1.x.

Utilice el editor de descriptores de despliegue de EJB para especificar la relación entre dos beans de empresa de un proyecto o módulo EJB. El editor de descriptores de despliegue de EJB genera los métodos finder adecuados para dar soporte a las relaciones que cree.

Cuando define una relación de un CMP con otro, los campos CMP adicionales basados en los campos de clave del bean CMP de referencia se añaden al bean CMP propietario del cometido de referencia de reenvío (se activa el recuadro de selección Clave foránea en el bean CMP propietario).

Por ejemplo, una Empresa tiene una relación 1..N con Empleado con los cometidos de empresa y empleados respectivamente. Se reenvía el cometido de empresa y el bean CMP Empresa tiene campos de clave llamados "IDempresa" y "nombreEmpresa". Los campos CMP que se añaden automáticamente al bean Empleado son "empresa_IDempresa" y "empresa_nombreEmpresa". Estos campos son ocultos en el editor de EJB porque son campos que se han añadido para proporcionar soporte al cometido de la relación "empleado". Podrían surgir problemas si se eliminaron estos campos CMP del archivo ejb-jar.xml cuando aún existía la relación.

Más ejemplos de relaciones que se pueden ver en el proyecto de ejemplo AutoWorld que se envía con Rational Application Developer. En la imagen que aparece a continuación se muestra la relación Garaje-Vehículo que aparece en la página Relaciones del editor de descriptores de despliegue de EJB. Se pueden guardar varios Vehículos en un solo Garaje, de modo que la multiplicidad indica una relación de Muchos (0..*) con 1 (0..1).


Captura de pantalla del asistente Añadir relación.

El asistente de creación muestra la vista UML de la relación y los campos se modifican según el modelo UML. Cuando se crea una relación, se crean clases adicionales para proporcionar soporte de ejecución para mantener los enlaces entre estos dos beans. Además, se generarán métodos adicionales en las clases Home, Remote y Bean de los dos beans de empresa. Aparecerán errores de compilación en el editor de descriptores de despliegue de EJB cuando se crea por primera vez una relación porque es necesario que se compilen las clases Link. Aparecerá el código real en estos archivos pero los cambios en las clases Homes Remote y Bean aún no se han compilado. Esto no tendrá lugar hasta que el proyecto no se genere; esto suele suceder automáticamente cuando se guarda el editor de descriptores de despliegue de EJB. Por lo tanto, no aparecerán errores de compilación hasta que no se guarde el editor.

Nota: Si existe una relación entre uno o más beans CMP, si se cambia la forma de la clave de un CMP podría provocar que se regeneraran los CMP relacionados.

Para crear una relación entre dos beans de empresa (CMP 1.x ):

  1. Cambie a la perspectiva J2EE.
  2. En la vista Explorador de proyectos, seleccione el módulo EJB deseado.
  3. Pulse con el botón derecho del ratón en el Editor del descriptor de despliegue y seleccione Abrir con del menú emergente.
  4. En la página Visión general del editor, seleccione la sección Relaciones.
  5. Pulse Añadir. Aparecerá el asistente Añadir relación.
  6. Seleccione un bean de empresa de la lista Bean A (columna de la izquierda).
  7. Seleccione un bean de empresa de la lista Bean B (columna de la derecha). El campo Nombre de relación se crea automáticamente basándose en los nombres de los beans de empresa seleccionados. No obstante, puede editar este campo para renombrar la relación.
  8. Pulse Siguiente.
  9. Por omisión, se generan automáticamente los nombres de cometido, pero se pueden modificar.
  10. Establezca parámetros para cada cometido. Puede elegir las siguientes opciones:
    • Navegable significa que se pueden recuperar instancias del otro bean de la asociación utilizando este cometido.
    • Multiplicidad significa que el cometido puede representar muchas instancias del otro bean. Si se utiliza 1..x el cometido es necesario.
    • Clave foránea significa que el bean de empresa especificado de la relación mantiene una clave foránea para el otro cometido de la relación.
  11. Pulse Finalizar.
Nota: Para proporcionar soporte a relaciones CMP 1.x, se crean las clases Link. Estas clases Link requieren el conocimiento de las clases de clave primaria de los beans. Si cambia la clase de clave primaria para un CMP 1.x que interviene en las relaciones, las clases Link generadas contendrán referencias a la antigua clase de clave primaria. La solución es actualizar manualmente las clases Link. Sólo debería haber dos apariciones donde es necesario el cambio.
Condiciones de uso | Comentarios
(C) Copyright IBM Corporation 2000, 2005. Reservados todos los derechos.