Estoy tratando de aprender JPA de datos de primavera probando algunas operaciones CRUD a través de JpaRepository
.
Encontré dos métodos save
y saveAndFlush
. No entiendo la diferencia entre estos dos. Al llamar save
también mis cambios se guardan en la base de datos, ¿de qué sirve saveAndFlush
?
Dependiendo del modo de descarga de hibernación que esté utilizando (
AUTO
es el valor predeterminado),save
puede o no escribir sus cambios en la base de datos de inmediato. Cuando llamasaveAndFlush
, está aplicando la sincronización del estado de su modelo con la base de datos.Si usa el modo de descarga AUTO y está usando su aplicación para guardar primero y luego seleccionar los datos nuevamente, no verá una diferencia en el comportamiento entre
save()
ysaveAndFlush()
porque la selección activa primero una descarga. Ver la documentación .fuente
save
una entidad y nuevamente la misma, ¿quieres decir que consave
el segundo comando no arrojaré una excepción por duplicación, por ejemplo?save
son idempotentes. Vea este hilo para más detalles.