hibernate——缓存

/**
 * Created by Administrator on 2018/11/16 0016.
 * 一级缓存 Session
 * 二级缓存 SessionFactory
 * 查询缓存 createQuery
 */

一级缓存 

get,load方法自动从一级缓存中查找,如果存在缓存对象,直接使用

 

@Test
    public void firstLevel(){
        Session session = HibernateUtil.getCurrentSession();

        Province p = session.get(Province.class,1);

        Province p1 = session.get(Province.class,1);

        HibernateUtil.close(session);
    }

二级缓存

hibernate.cfg.xml配置


        <!--使用二级缓存-->
        <property name="hibernate.cache.use_second_level_cache">true</property>
        <!--配置二级缓存服务商-->
        <property name="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</property>
@Test
    public void sencondLevel(){
        Session session = HibernateUtil.getCurrentSession();

        Province p = session.get(Province.class,1);

        HibernateUtil.close(session);

        Session session1 = HibernateUtil.getCurrentSession();

        Province p1 = session1.get(Province.class,1);

        session1.beginTransaction();
        p1.setName("aaaaa");
        session1.saveOrUpdate(p1);
        session1.getTransaction().commit();

        HibernateUtil.close(session1);

    }

查询缓存

hibernate.cfg.xml配置

<!--使用查询缓存-->
        <property name="cache.use_query_cache">true</property>
@Test
    public void queryCache(){
        Session session = HibernateUtil.getCurrentSession();

        List<Province> provinceList = session.createQuery("from Province ").setCacheable(true).list();

        HibernateUtil.close(session);

        Session session1 = HibernateUtil.getCurrentSession();

        List<Province> provinceList1 = session1.createQuery("from Province ").setCacheable(true).list();

        HibernateUtil.close(session1);

    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值