当前位置 : 主页 > 编程语言 > java >

Hibernate缓存及核心接口类详解

来源:互联网 收集:自由互联 发布时间:2022-10-26
Hibernate缓存概述 一级缓存(session级别缓存) 也叫事务级别的缓存 二级缓存(sessionFactory缓存) 也叫应用级缓存 三级缓存(查询缓存) 区别: 一级缓存的生命周期和session的生命周期

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”代表被动方,由关联的对象来维护他们之间的关联关系

上一篇:List和Map、Set的区别
下一篇:没有了
网友评论