HIbernate二级缓存

Posted 나 는 당신

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HIbernate二级缓存相关的知识,希望对你有一定的参考价值。

一、定义:

二级缓存是进程或集群范围内的缓存,可以被所有的Session共享,是可配置的插件

二、二级缓存原理图

 

解析:每次从二级缓存中取出的对象,都是一个新的对象。

 

三、配置步骤如下:

同理:以员工类和部门类为例

① 引入jar包

 

② 关键点:

大配置Hibernate.cfg.xml开启二级缓存

③ 在src下添加ehcache.xml文件,从etc获取文件即可。

④测试二级缓存(数据散装的特点)

复制代码
public class Test1 {
    Session session;
    Transaction tx; 
    
    Session session2;
    Transaction tx2;

    @After
    public void afterTest(){
        tx.commit();
        HibernateUtil.CloseSession();
    }

    @Before
    public void initData(){
        session=HibernateUtil.getSession();
        tx=session.beginTransaction();
    }
    
    /*
     * 二级缓存
     */
    @Test
    public void twoTest(){
        session=HibernateUtil.getSession();
        tx=session.beginTransaction();
        
        Emp emp=(Emp)session.get(Emp.class, 2);
        System.out.println(emp);
        tx.commit();
        System.out.println("========================");
        Emp emp2=(Emp)session.get(Emp.class, 2);
        System.out.println(emp2);
        
        System.out.println("========================");
        
        
        session2=HibernateUtil.getSession();
        tx2=session2.beginTransaction();
        
        Emp emp3=(Emp)session2.get(Emp.class, 2);
        System.out.println(emp3);
        tx2.commit();
        System.out.println("=========================");
    }
复制代码

输出结果如下:

 

注:一级缓存保存的是内存对象的引用,二级缓存中数据散装,需重新封装新的对象,所以两个内存地址不同

以上是关于HIbernate二级缓存的主要内容,如果未能解决你的问题,请参考以下文章

ssh整合hibernate 使用spring管理hibernate二级缓存,配置hibernate4.0以上二级缓存

hibernate 一级缓存和二级缓存

具体解释Hibernate中的二级缓存

Hibernate学习11——配置Hibernate二级缓存

Spring 整合 Hibernate 时启用二级缓存实例详解

Java面试题:Hibernate的二级缓存与Hibernate多表查询