缓存如何知道数据库是否已更新?

时间:2014-07-23 05:04:54

标签: hibernate

我是Hibernate的新手。在休眠时,如果我们多次发送相同的请求,数据将在缓存中可用。这是真的吗?如果是真的,在给出相同的请求2次后我改变了数据库列数据使用sql prompt.again我发送了相同的请求然后它会做什么?它是否在高速缓存中检查?还是转到数据库?

1 个答案:

答案 0 :(得分:1)

快速回答是缓存不知道从其他数据库会话进行的更新。

作为程序员,您有责任正确使用缓存。

首先,hibernate有几种类型的缓存。会话(或第一级)缓存在休眠会话期间保持不变。此缓存始终有效,一些会话方法使用它,有些会绕过它。查看4.x3.x的详细信息。

默认情况下,二级缓存处于关闭状态,如果启用它,会话的cache mode将确定是先查询缓存还是对特定请求执行数据库调用。

与第一级缓存不同,第二级缓存是可插入的,缓存提供程序通常允许配置在逐出和刷新之前特定对象在缓存中存储的时间。这是ehcache的example