gpt4 book ai didi

java - entityManager.flush() 会清除二级缓存吗?

转载 作者:行者123 更新时间:2023-11-30 07:42:25 26 4
gpt4 key购买 nike

有点混淆entityManger.flush();

用于批处理的 Hibernate 文档

https://docs.jboss.org/hibernate/orm/5.0/userguide/html_single/chapters/batch/Batching.html

“当你使新对象持久化时,定期对 session 使用 flush() 和 clear() 方法,以控制一级缓存的大小。”

我正在处理 spring boot 数据 jpa。

第一个疑惑是Restful应用一级缓存是否启用?

entityManager.flush()能否清除二级缓存?

entityManger.flush()是否类似于System.gc();

最佳答案

1)一级缓存是为每个启动的事务创建的,因此它始终存在于每个事务方法中。

2) entityManager.flush(),不清除二级缓存。它也不会清除一级缓存,它会强制将当前事务中所做的任何更改推送到物理数据库中。

3) entityManger.flush()是否类似于System.gc()?不,所有对象仍然在堆上,甚至仍然由当前持久化上下文管理。

关于java - entityManager.flush() 会清除二级缓存吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54655445/

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