【发布时间】:2015-08-05 10:59:05
【问题描述】:
我已经读到使用 hibernate 的二级缓存,它可以通过减少数据/对象检索的数据库命中来提高应用程序性能。
但是,hibernate 如何确保二级缓存与数据库中的数据保持同步。
例如:
假设下面的类是实体并持久化到数据库中。
@Entity
class User {
Id
private int id;
private String str;
}
现在,如果我们启用了二级缓存,我知道如果我们打开不同的会话,那么每个会话都会访问二级缓存以检索对象值。
现在,如果数据库中的数据发生变化(例如,对于 id=1 的行),比如通过某个独立进程/手动更改值,并且我们尝试访问该值,休眠如何检测缓存是否具有最新值(对于 id = 1)。
一般来说,hibernate是如何保证二级缓存中的数据与db值一致的。
感谢您的帮助。
【问题讨论】:
标签: java hibernate second-level-cache