关闭。这个问题需要更多 focused .它目前不接受答案。
想改进这个问题?更新问题,使其仅关注一个问题 editing this post .
1年前关闭。
Improve this question
根据 hibernate 的官方文档, session 是“Java 应用程序和 Hibernate 之间的主要运行时接口(interface)”。我知道 session 的功能是在应用程序和数据库之间提供物理连接。但是,我的问题是, session 到底是什么,它是如何在幕后工作的?
最佳答案
hibernate session 充当应用程序和数据库之间的缓冲区。它缓存从数据库中检索到的对象,因此如果再次需要这些对象,它可以提供这些对象而无需访问数据库。这对性能有好处,也可以确保 Java 代码对数据库的 View 更加一致(缓存意味着没有不可重复的读取)。可以配置刷新模式,或者如果此缓存妨碍了应用程序代码,则可以刷新 session 。
当应用程序保存更改时,hibernate 不会立即将插入和更新发送到数据库,更改会保存在 session 中,以便在下次刷新 session 时发送到数据库。 Hibernate 决定执行它们的顺序。这允许 hibernate 使用 jdbc 批处理,并且还减少了它必须执行的任何数据库锁定的范围。
关于java - hibernate 中的 session 到底是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65462205/