什么是休眠中的会话?
根据 Hibernate 的官方文档,会话是“Java 应用程序和 Hibernate 之间的主要运行时接口”。我知道会话的功能是在应用程序和数据库之间提供物理连接。但是,我的问题是,会话究竟是什么以及它在幕后如何工作?
回答
休眠会话充当应用程序和数据库之间的缓冲区。它缓存从数据库中检索到的对象,以便在再次需要时提供这些对象而无需访问数据库。这对性能有好处,也确保了 Java 代码对数据库的看法更加一致(缓存意味着没有不可重复的读取)。如果这种缓存妨碍了,可以配置刷新模式或应用程序代码可以刷新会话。
当应用程序保存更改时,hibernate 不会立即向数据库发送插入和更新,更改会保存在会话中,以便在下次刷新会话时发送到数据库。Hibernate 决定以什么顺序执行它们。这允许 hibernate 使用 jdbc 批处理并减少它必须执行的任何数据库锁定的范围。