java - hibernate 中的 session 到底是什么?

标签 java database hibernate

关闭。这个问题需要更多 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/

相关文章:

java - 多线程字符串处理因#threads 而爆炸

mysql - 当我将超过 1600 个(大约)帖子导入 Wordpress 时,我的网站崩溃了,是否有数据库限制?

java - 字符串长度的差异(数据库 - .txt 文件)

java - 加载 hibernate 实体时始终调用方法

java - JPA:在空的多边上将获取结果加入到 NULL

java - 使用从文本字段获取的输入修改从数据库获取的字符串

java - 哪里可以学习最新的标准化 Java

java - 如何使用 netty 5.0 创建大量连接

php - 我想在使用 JavaScript 和 PHP 键入时向用户建议一些数据。这怎么可能?

Hibernate 4.1.1 Multi-Tenancy CurrentTenantIdentifierResolver 方法,任何示例