Merge vs Persist en JPA

Diferencia entre el Merge y Persist… algo tan simple que puede evitarnos dolores de cabeza😀

El blog de Gonzalo Jiménez

Hasta hace poco no conocía la existencia del método Merge del EntityManager de JPA. De momento no le he visto utilidad aparente, si bien he encontrado referencias en código que he heredado.

Persist: recibe como parámetro una instancia que será la que se ponga como activa en el momento de hacer el persist. Es decir, todos los cambios que se hagan antes de cerrar la transacción sobre una entidad sobre la que se ha hecho un persist, se guardarán también en la Base de datos.

MyEntity e = new MyEntity();
// scenario 1
// tran starts
em.persist(e);
e.setSomeField(someValue);
// tran ends, and the row for someField
// is updated in the database

Merge: recibe como parámetro una entidad. Devuelve una copia de esa entidad y establece esa copia como la entidad manejada por el EntityManager. Cualquier operación que se haga sobre la entidad origen ne se persistirá en la base…

Ver la entrada original 86 palabras más

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s