1.证明一级缓存的问题

输出结果:

只发出一条查询语句 第二条查询语句没有执行
因为第一条查询语句缓存的存在
2.
移除缓存:

输出结果:

3.一级缓存的快照
就是对一级缓存的数据备份
保证数据库的数据与 一级缓存的数据必须一致。
如果一级缓存修改了,在执行commit提交时,将自动刷新一级缓存,执行update语句,将一级缓存的数据更新到数据库。

l refresh 保证 一级缓存的数据 与 数据库的数据 保持一致。将执行select语句查询数据库,将一级缓存中的数据覆盖掉。只要执行refresh都将执行select语句。

输出结果:

刷新一次 就会执行一次select语句为了缓存中的数据与数据库中的数据保持一致


问题:一级缓存什么时候刷新?(了解)
默认情况提交(commit())刷新。
|
User u = (User) session.get(User.class,"1"); |
输出结果:
|
Hibernate: |
原文:http://www.cnblogs.com/fjkgrbk/p/hibernate_catch.html