Las descripciones individuales de CascadeType pueden ser un poco confusas, pero hay una manera fácil de averiguarlo a partir del caso general.
Para cualquiera de los CascadeType
valores, significa que si X
se llama a la operación en una instancia usando la EntityManager
interfaz, y esa instancia tiene referencias a otras instancias de entidad, y esa asociación se ha CascadeType.X
definido, entonces la EntityManager
operación también se aplicará a esa entidad asociada.
Entonces EntityManager.refresh()
se define como:
Actualice el estado de la instancia desde la base de datos, sobrescribiendo los cambios realizados en la entidad, si los hubiera.
Entonces, si la entidad A tiene una referencia a la entidad B, y esa referencia está anotada @CascadeType.REFRESH
y EntityManager.refresh(A)
se llama, entonces EntityManager.refresh(B)
también se llama implícitamente.
Recuperación por actualización: los objetos administrados se pueden volver a cargar desde la base de datos mediante el método de actualización:
El contenido del objeto gestionado en la memoria se descarta (incluidos los cambios, si los hubiera) y se reemplaza por datos que se recuperan de la base de datos. Esto podría ser útil para garantizar que la aplicación maneje la versión más actualizada de un objeto de entidad, en caso de que otro EntityManager lo haya cambiado desde que se recuperó.
Fuente: http://www.objectdb.com/java/jpa/persistence/retrieve
fuente