Hibernate一级缓存-快照机制
来源:互联网 发布:mac 测量图片尺寸工具 编辑:程序博客网 时间:2024/05/18 12:34
案例:修改客户的名称
@Test
publicvoid testUpdateName(){
//从Hibernate封装的工具类中获取Session对象
Sessionsession=HibernateUtil.openSession();
//开启事务
Transactiontx=session.beginTransaction();
//第一步:先查询出客户信息(根据ID查询)
Customerc=session.get(Customer.class, 95L);
//第二步:对查询出的客户实体进行修改(修改名称)
c.setCustName("***");
//第三步:调用Hibernate方法实现更新操作
//session.update(c);//常规方式是要调用update方法,但此处省略看看执行结果
tx.commit();
session.close();
}
MySQL数据库中的数据:
执行java程序后的结果:
解释:以上java程序中没有直接调用update方法,同样也对数据修改成功。主要是借助了Hibernate的快照功能
Eclipse debug模式:
快照:session ->persistenceContext à entityEntryContext à head à entityEntry à loadedState
Hibernate向一级缓存放入数据时,同时复制一份数据放入到Hibernate快照中,当使用commit()方法提交事务时,同时会清理Session的一级缓存,这时会使用OID判断一级缓存中的对象和快照中的对象是否一致,如果两个对象中的属性发生变化,则执行update语句,将缓存的内容同步到数据库,并更新快照;如果一致,则不执行update语句。
结论:Hibernate快照的作用就是确保一级缓存中的数据和数据库中的数据一致。
- Hibernate一级缓存-快照机制
- hibernate一级缓存与快照
- Hibernate一级缓存机制
- hibernate 一级缓存、一级缓存快照区、二级缓存
- 关于Hibernate一级缓存的快照问题
- Hibernate缓存机制之快照
- Hibernate缓存机制之快照
- 快照和一级缓存
- Hibernate之缓存机制(一级缓存)
- 【转】Hibernate之缓存机制(一级缓存)
- 【hibernate框架】缓存机制之一级缓存
- 浅谈Hibernate缓存机制:一级缓存、二级缓存
- 模仿hibernate一级缓存session缓存机制
- Hibernate缓存机制之一级缓存
- hibernate中session一级缓存机制
- hibernate的一级缓存和二级缓存机制
- hibernate一级缓存机制(还有二级)
- Hibernate旅程(七)Hibernate缓存机制--一级缓存
- js&jquery
- JavaDay02--Homework(判断闰年+百钱百鸡+指定基数和次数求和)
- 关于数据迁入迁出是的乱码问题
- selenium各类等待处理方法
- 动态规划--(最长上升子序列 poj2533)
- Hibernate一级缓存-快照机制
- POJ 1151 -Invitation Cards- SPFA
- 小白入门:大型网站技术架构负载均衡技术介绍及学习资源推荐
- 聚类算法(三)--K-means方法
- 使用 Fetch
- BigDecimal和Currency的使用,用于金额的计算
- 自顶向下,逐步求精
- 贪心算法,递归算法,动态规划算法比较与总结
- 【Mapreduce】从代码上解决Output directory already exists错误,避免每次调试都要手动删除输出文件夹