Un saludo quisiera solventar una duda que me surgió al estar revisando los temas de Persistencia con JPA: Hibernate, cuando revisamos el método merge esta este ejercicio:
em.getTransaction().begin();
Producto producto = em.find(Producto.class, 1l);
producto.setDescripcion(“Test 1”);
em.flush();
producto.setDescripcion(“Test 2”);
em.merge(producto);
producto.setDescripcion(“Test 3”);
em.getTransaction().commit();
em.close();
al momento de seleccionar la respuesta de ¿Qué se espera obtener?, seleccioné que se espera que:
"La entidad producto se actualizará en la base de datos con la descripción Teste 3"
porque pense que el metodo merge permitía pasar la entidad a estado managed y entonces realizar el update, sin embargo en la descripción de la respuesta menciona que:
"En el código anterior, merge acabó siendo indiferente, pues la entidad ya estaba en estado Managed."
Alguien me podría explicar ¿Por qué la entidad no pasa a detached cuando se aplica el em.flush()?