首页 > 其他分享 >Hibernate缓存及核心接口类详解

Hibernate缓存及核心接口类详解

时间:2022-10-23 18:00:44浏览次数:80  
标签:缓存 Session 接口 二级缓存 session Hibernate 接口类

Hibernate缓存概述

一级缓存(session级别缓存)

也叫事务级别的缓存

二级缓存(sessionFactory缓存)

也叫应用级缓存

三级缓存(查询缓存)

区别:

  • 一级缓存的生命周期和session的生命周期保持一致,hibernate默认就启用了一级缓存,不能将其关闭,可以通过session.clear()和session.evict(object)来管理一级缓存。其中get,load,iterate都会使用一级缓存,一级缓存缓存的是对象。一级缓存只查询主键时有用。

  • 二级缓存的生命周期和sessionFactory的生命周期保持一致,可以跨session,被多个session共享,可以手动开启并指定缓存插件如ehcache,oscache等。二级缓存也只能缓存对象。二级缓存只查询主键时有用。

  • 三级缓存也叫查询缓存,查询缓存依赖二级缓存,所以在使用查询缓存之前配置好二级缓存。可以指定条件缓存

Hibernate核心类接口

Configuration接口

对Hibernate进行配置,以及对它进行启动。(加载hibernate.cfg.xml)并创建一个SessionFactory对象。

SessionFactory接口

SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建 Session对象。SessionFactory是线程安全的。

Session接口

Session(会话)接口是Hibernate应用使用的主要接口。Session接口负责执行被持久化对象的CRUD操作(增删改查)。Session对象是非线程安全的。Session相当于jdbc的connection。

Query接口

总之Query接口负责执行各种数据库查询。它可以使用HQL语句或SQL 语句两种表达方式。

Transaction接口

Transaction(事务)接口是一个可选的API。负责操作相关的事务

Hibernate配置文件中inverse属性作用

作用:

由谁来控制关联关系的自动维护

配置在<Set>节点上面:

inverse=“true”代表被动方,由关联的对象来维护他们之间的关联关系

标签:缓存,Session,接口,二级缓存,session,Hibernate,接口类
From: https://blog.51cto.com/codeshallow/5787416

相关文章

  • Memcache 缓存机制以及分布式
    Memcache缓存机制以及分布式Memcache缓存机制Memcached是一个高性能的分布式内存对象缓存系统。目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库......
  • 8、CPU cache缓存一致性问题
    前面提到过现在CPU都是多核的,由于L1/L2Cache是多个核心各自独有的,L3Cache是多核共用的,那么会带来多核心的缓存一致性(CacheCoherence) 的问题,如果不能保证缓存一致性的......
  • 回顾缓存穿透、缓存雪崩、缓存击穿及封装Redis工具类
    缓存穿透问题的解决思路缓存穿透:缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在,这样缓存永远不会生效,这些请求都会打到数据库。常见的解决方案有两种:缓存......
  • redis缓存时间范围数据用法
    场景:A系统需要根据业务系统名(比如业务系统就叫KKK)以及时间范围如2022-10-2210:01到2022-10-2210:31请求B系统,B系统会返回10:01到10:31这30个分钟的数据;这个数据需要缓存......
  • hibernate的OneToOne映射
    hibernate的OneToOne映射1、前言@OneToOne注解可以建立实体bean之间的一对一的关联。一对一关联有四种情况:一是关联的实体都共享同样的主键;二是其中一个实体通过外键......
  • MasaFramework -- 缓存入门与设计
    概念什么是缓存,在项目中,为了提高数据的读取速度,我们会对不经常变更但访问频繁的数据做缓存处理,我们常用的缓存有:本地缓存内存缓存:IMemoryCache分布式缓存Redis:......
  • 一文彻底搞懂前端缓存机制
    浏览器缓存步骤1)浏览器在加载资源时,先根据这个资源的一些httpheader判断它是否命中强缓存,强缓存如果命中,浏览器直接从自己的缓存中读取资源,不会发请求到服务器。比如某个......
  • MasaFramework -- 缓存入门与规则配置
    概念什么是缓存,在项目中,为了提高数据的读取速度,我们会对不经常变更但访问频繁的数据做缓存处理,我们常用的缓存有:本地缓存内存缓存:IMemoryCache分布式缓存Redis:......
  • #yyds干货盘点# 面试必刷TOP101:设计LFU缓存结构
    1.简述:描述一个缓存结构需要实现如下功能。set(key,value):将记录(key,value)插入该结构get(key):返回key对应的value值但是缓存结构中最多放K条记录,如果新的第K+1条记录要......
  • MyBatis 缓存(一)
    一、MyBatis缓存中的常用概念MyBatis缓存:它用来优化SQL数据库查询的,但是可能会产生脏数据。SqlSession:代表和数据库的一次会话,向用户提供了操作数据库的方法。Mapped......