分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

Hibernate--一级缓存

发布时间:2023-09-06 01:16责任编辑:赖小花关键词:缓存Hibernate

一级缓存:

  Hibernate的一级缓存是指Session(属于事务范围的缓存,由Hibernate管理,无需干预),它是一块内存空间,用来存放从数据库查询出的java对象,有了一级缓存,应用程序可以减少访问数据库的次数,提高了性能。

  在使用Hibernate查询对象的时候,首先会使用对象属性的OID值(对应表中的主键)在Hibernate的一级缓存进行查找,如果找到,则取出返回,不会再查询数据库,如果没有找到,再到数据库中进行查询操作。然后将查询结果存放到Session一级缓存中

一级缓存管理:

   如果对象不在一级缓存中,数据库不能自动更新

  将对象从session中移除(持久态-->游离态):

    evict()

    clear()

快照机制:

   当执行commit()时,Hibernate同时会清理session的一级缓存(flush),也就是将堆内存中的数据与快照中的数据进行对比,如果不一致,会执行同步操作(update)操作,如果一致,则不执行update

  对象必须是持久化对象,才会走快照机制

  快照是数据的副本

  快照属于一级缓存

  快照是在堆内存中的

  快照的作用:保证数据的一致性

Hibernate--一级缓存

原文地址:http://www.cnblogs.com/roxy/p/7640216.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved