¿Cuál es la diferencia entre flush y commit en Hibernate?¿Cuál es la diferencia entre flush y commit en Hibernate?
Respuesta
El proceso de sincronización del estado de la conexión JDBC con el estado de los objetos almacenados en la memoria se denomina flush.
Esto ocurre en los siguientes puntos en función del conjunto FlushMode:
- antes algunas ejecuciones de consulta cuando FlushMode.AUTO (Este es el valor por defecto).
- de org.hibernate.Transaction.commit() cuando FlushMode.COMMIT
- de Session.flush()
La diferencia clave es que cuando FlushMode se establece en COMMIT, commit() elimina la sesión y también finaliza la unidad de trabajo y no puede deshacer la transacción en la que flush() hace solo una sincronización normal de la sesión.
Más info
Flushing es el proceso de sincronizar el almacén persistente subyacente con el estado con persistencia que tuvo lugar en la memoria.
La afirmación anterior es confusa para algunas personas que pueden estar teniendo la siguiente pregunta (es decir, cuál es la diferencia b/w luego vaciar y confirmar) en mente después de leer la declaración anterior.
Flush es como ejecutar la sentencia pero no comprometerla. Por ejemplo: - abre cualquier herramienta de ejecución sql como oráculo SQLdeveloper
, abre una sesión y activa la declaración de actualización. Abre una nueva sesión de sql, no verás actualizaciones hasta y a menos que lo confirmes en la primera sesión. Entonces la consulta se ejecutó en una sesión de Oracle concreta pero no se confirmó.
Cuando llamas a hibernar guardar (o actualizar), no significa que la consulta subyacente se ejecuta al mismo tiempo. En general, se ejecuta cuando la confirmación se realiza de forma explícita o al final de la transacción. Pero hay escenarios (como obtener una ID asignada a un objeto transitorio, controlar el tamaño de la sesión de hibernación como en las actualizaciones por lotes, de lo contrario puede salir de la excepción de mem) donde le gustaría ejecutar la consulta pero no comprometerla. La descarga ayuda aquí
¿Así que flush es como ejecutar una declaración con confirmación automática falsa? –
Sí Exactamente tienes razón. –
- 1. SQLAlchemy: ¿Cuál es la diferencia entre flush() y commit()?
- 2. ¿Cuál es la diferencia entre "commit" y "commit work"?
- 3. ¿Cuál es la diferencia entre 'commit' y 'revision'
- 4. ¿Cuál es la diferencia entre persist() y merge() en Hibernate?
- 5. Hibernate: ¿cuál es la diferencia entre MySQLDialect y MySQLInnoDBDialect?
- 6. ¿Cuál es la diferencia entre + = y = +?
- 7. ¿cuál es la diferencia entre:.! y: r !?
- 8. ¿Cuál es la diferencia entre ".equals" y "=="?
- 9. Cuál es la diferencia entre $ y jQuery
- 10. Cuál es la diferencia entre = y: =
- 11. Cuál es la diferencia entre $ (...) y `...`
- 12. ¿Cuál es la diferencia entre dict() y {}?
- 13. ¿Cuál es la diferencia entre [indefinido] y [,]?
- 14. ¿Cuál es la diferencia entre un JavaBean y un POJO?
- 15. ¿Cuál es la diferencia entre {0} y ""?
- 16. ¿Cuál es la diferencia entre .ToString (+) y ""
- 17. ¿Cuál es la diferencia entre `##` y `hashCode`?
- 18. ¿Cuál es la diferencia entre "$^N" y "$ +"?
- 19. ¿Cuál es la diferencia entre " " y ""?
- 20. ¿Cuál es la diferencia entre StreamWriter.Flush() y StreamWriter.Close()?
- 21. ¿Cuál es la diferencia entre @NotAudited y RelationTargetAuditMode.NOT_AUDITED en Hibernate EnVers?
- 22. ¿cuál es la diferencia entre lazy = "true" y fetch = "select" en hibernate?
- 23. ¿Cuál es la diferencia entre @ y $ y% en MSBuild?
- 24. Diferencia entre FlushMode.AUTO y FlushMode.ALWAYS en Hibernate?
- 25. ¿Cuál es la diferencia entre usar @Transactional y la plantilla de Spring?
- 26. ¿Cuál es la diferencia entre git push y git pull?
- 27. OpenGL (ES) - ¿Cuál es la diferencia entre frustum y orto?
- 28. ¿Cuál es la diferencia entre la abstracción y la encapsulación?
- 29. ¿Cuál es la diferencia entre Session.Abandon() y Session.Clear() en ASP.Net?
- 30. ¿cuál es la diferencia entre didselectrowindexpath y willselectrowindexpath en iphone?
** ¿Qué tratas de entender? ** –
No puedo creer que mi voto para cerrar esta pregunta sea rechazado. ¿Cómo es que esto es una pregunta válida de stackOverflow? – kommradHomer