gpt4 book ai didi

java - hibernate : Invalidating Second Level cache

转载 作者:行者123 更新时间:2023-11-30 08:06:23 25 4
gpt4 key购买 nike

我了解到,如果持久存储中发生任何更新,二级缓存将无法自行更新。那么,我应该在 DAO 层的每次写入或更新方法之后调用 evict2ndLevelCache() 方法吗?或者有更好的策略?

http://howtodoinjava.com/2013/07/02/how-hibernate-second-level-cache-works/

If some user or process make changes directly in database, the there is no way that second level cache update itself until “timeToLiveSeconds” duration has passed for that cache region. In this case, it is good idea to invalidate whole cache and let hibernate build its cache once again. You can use below code snippet to invalidate whole hibernate second level cache.

最佳答案

如果您正在对 Hibernate 实体本身进行更改,则无需执行任何其他操作来确保 L2 缓存的一致性,Hibernate 会处理它。

如果您通过 native 查询进行更改,请明确提及哪些实体受到影响,否则 Hibernate 将使整个二级缓存失效,如 here 所述。 .

如果您正在从另一个进程更改数据库中的数据,那么 Hibernate 不会意识到这一点,您将必须定义最适合您要求的策略(过期策略、从应用程序外部调用的显式失效、等)。

关于java - hibernate : Invalidating Second Level cache,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34411897/

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