Hibernate查询缓存

本文介绍HiberNate中的查询缓存机制,作为二级缓存的增强版,它可以缓存对象属性。通过配置Hibernate.cfg.xml文件启用,并在Java代码中通过设置Cacheable属性来利用查询缓存。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HiberNate的查询缓存

1.  是什么
    查询缓存是二级缓存的增强版,二级缓存不能缓存对象的属性,但是查询换粗是可以的
2.  怎么办
    查询缓存依赖二级缓存,在Hibernate.cfg.xml文件中必须要先配置好二级缓存,才能配置使用查询缓存

    1.  在Hibernate.cfg.xml文件中开启查询缓存                 
    <property name="hibernate.cache.use_query_cache">true</property>

    2.  在Java代码中使用
    ```Java
        @Test
    /*
 * 查询缓存区,查询缓存区可以缓存对象的属性,是二级缓存区的加强,但是必须依赖于二级缓存区
 * */
public void demo5(){
    Session session = HibernateUtils.openSession();
    Transaction transaction = session.beginTransaction();

    Query query = session.createQuery("select c.name from Customer c");
    //如果想使用二级缓存,必须设置Cacheable属性为true,而且必须上下都需要设置
    query.setCacheable(true);
    List<String> list = query.list();

    transaction.commit();
    session.close();


    session = HibernateUtils.openSession();
    transaction = session.beginTransaction();

    Query query2 = session.createQuery("select c.name from Customer c");
    //这里也需要设置
    query2.setCacheable(true);
    List<String> list2 = query2.list();

    transaction.commit();
    session.close();

}
    ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值