October 13, 2009

JPA Entity Manager y la operación 'merge'

Durante el desarrollo de un proyecto, nos encontramos con el problema de que muchas actualizaciones que se realizaban a entidades (JPA) no se escribían en la base de datos. Revisando el log de Hibernate, encontramos que muchas veces la operación 'merge' solamente ejecutaba una selección de datos, y no asi su modificacion.

Revisando encontramos la siguiente referencia en el libro 'Seam in action' :
Merging is a crude operation and should be avoided if possible
Además el mismo autor recomienda hacer uso de las operaciones 'flush' y 'refresh' para actualizar datos o deshacer cambios. Esto nos salvo muchos problemas, ademas de habernos aclarado algunas dudas, ojala les sea útil.