gpt4 book ai didi

java - Hibernate 是否缓存新创建的实例

转载 作者:行者123 更新时间:2023-11-30 01:50:35 25 4
gpt4 key购买 nike

在学习 HIbernate 时,我在 Hibernate official documentation 中遇到了这个:

That is because Hibernate caches all the newly inserted Customer instances in the session-level cache.

我知道 Hibernate 会缓存检索到的实体,但它也会缓存新实体吗?

编辑:新创建的实例,如session.save(new Customer())

最佳答案

Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
for ( int i=0; i<100000; i++ ) {
Customer customer = new Customer(.....);
session.save(customer);
}
tx.commit();
session.close();

这里的缓存意味着在session.save(customer)之后,客户仍然在session对象中并且之前没有被删除 session 已关闭。

这意味着,如果您使用 session.get(Customer.class, id) 来获取具有在关闭 session 之前已保存的 ID 的客户,则不会导致 SQL SELECT 从数据库中检索该客户,而只是从 session 返回缓存的客户。

关于java - Hibernate 是否缓存新创建的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56200385/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com