Actualización de datos del Data Mediator Service de EJB
Una solicitud del mediador de EJB (Enterprise JavaBeans) es una consulta de EJB compuesta. Puede grabar un DataGraph actualizado de nuevo al origen de datos utilizando el método applyChanges.
La actualización se puede aplicar directamente al origen de datos o mediante instancias de EJB.
Cuando se aplican cambios mediante instancias de EJB se puede especificar una clase de adaptador opcional en el método applyChanges. Cada objeto de datos modificado se pasa primero al método applyChange de adaptador. El adaptador puede procesar el cambio en sí y devolver true o hacer que el mediador de EJB procese el cambio devolviendo false.
El adaptador se puede utilizar para personalizar la lógica de OCC (control de simultaneidad optimista) o procesar cambios para leer sólo atributos del DataGraph, o bien, procesar cambios que requieren la lógica de empresa.
Hay dos formas del método applyChanges. La primera, applyChanges( DataObject) acepta el DataGraph actualizado y ejecuta las sentencias insert, update y delete de (SQL) (Lenguaje de consulta estructurada) directamente en la base de datos, pasando el contenedor de EJB. La segunda forma, applyChanges( DataObject, MediatorAdapter ) procesa las actualizaciones utilizando instancias de EJB y accessors. Se admite el valor nulo para el MediatorAdapter.
Cuándo se debe utilizar un adaptador con applyChanges
- Utilícelo cuando hay métodos create que no sean create(PrimaryKey)
- Utilícelo cuando se debe llamar a métodos de negocio en lugar de métodos setter de CMP (persistencia gestionada por contenedor.
- Utilícelo cuando sea necesaria la lógica de colocación en memoria caché optimista especial
Cómo funciona el adaptador
- Se pasan DataObjects nuevos. El adaptador puede crear el objeto y establecer los campos de CMP. Las relaciones gestionadas por contenedor (CMR) que hacen referencia a enterprise beans que aún no se han creado se difieren hasta el paso 2.
- Se pasan los DataObjects nuevos y actualizados. Las CMR diferidas del paso 1 se pueden establecer en este momento.
- Se pasan los DataObjects suprimidos.