hibernate查询缓存和时间戳

时间:2015-09-22 05:27:29

标签: java mysql hibernate caching

Hibernate使用两个缓存区域进行查询缓存,使用org.hibernate.cache.internal.StandardQueryCache存储结果集,使用org.hibernate.cache.spi.UpdateTimestampsCache存储上次更新的表时间戳的时间戳。当新的查询被解雇时,将查询和更新UpdateTimestampsCache,因为时间戳没有更改,因此决定执行新查询或使用现有记录。

问题是

  1. hibernate如何知道时间戳,或者换句话说,hibernate知道查询中底层/使用表的时间戳知道什么查询?
  2. 在mysql数据库的情况下,hibernate是否使用/查询information_schema?
  3. UpdateTimestampsCache是​​否仅涉及查询中的表或所有表?

1 个答案:

答案 0 :(得分:2)

  1. 它不会触发任何查询。它通过Hibernate API跟踪在表中完成的所有插入,更新和删除,一旦完成,就会更新此表的时间戳。
  2. 没有