¿Qué significan REFRESH y MERGE en términos de bases de datos?


Tengo curiosidad y necesito encontrar esta respuesta rápidamente. Google no ayudará mucho.

La API de Persistencia de Java tiene estas propiedades que le indican al framework que realice operaciones en cascada en entidades asociadas:

CascadeType.PERSIST
CascadeType.DELETE
CascadeType.MERGE
CascadeType.REFRESH

Sé lo que significan los dos primeros: cuando persisto el objeto A que tiene B, persisto B también, y cuando elimino A, borro B también.

Pero no puedo darle sentido a lo que los otros dos logran. Ayuda?

Author: André Chalella, 2009-05-07

2 answers

REFRESH significa "extraer cualquier cambio de estado de la base de datos a mi representación". En cascada esto es simple; significa que todas las entidades asociadas se actualizan.

MERGE significa algo complejo que se aproxima a "guardar", pero es más como "devolver esta entidad separada al estado administrado y guardar sus cambios de estado" ; la cascada significa que todas las entidades asociadas se devuelven de la misma manera, y el controlador de entidad administrada que obtiene de .merge() tiene todas las entidades administradas asociado con él.

Enlace a una instancia de los documentos relevantes

 66
Author: chaos,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-05-07 19:45:36

Anotación JPA Significado para Muchas a Muchas relaciones :

  • TODAS - todas las posibles operaciones en cascada realizadas en la entidad de origen se conectan en cascada al destino de la asociación.
  • MERGE - si la entidad de origen se fusiona, la fusión se conecta en cascada al destino de la asociación.
  • PERSIST - si la entidad de origen es persisted, la persist se conecta en cascada al destino de la asociación.
  • ACTUALIZAR-si se actualiza la entidad de origen, la actualización es en cascada al objetivo de la asociación.
  • REMOVE - si se elimina la entidad de origen, también se elimina el destino de la asociación.

Yo mismo los veo de esta manera (más legible):

  • PERSIST es crear nuevos registros a partir de un objeto en la base de datos.
  • BORRAR es, bueno, borrar.
  • FUSIONAR, para objetos existentes, para fusionar los datos existentes en la tabla con los datos en mi objeto. (sincronizar con la base de datos)
  • ACTUALIZAR es actualizar los datos en objeto. Tal vez hubo un cambio en la base de datos que necesita ser sincronizado. (sync from database)
 72
Author: cgp,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-19 08:59:51