美文网首页Hibernate 菜鸟教程
Hibernate 菜鸟教程 17 查询缓存

Hibernate 菜鸟教程 17 查询缓存

作者: JeGe | 来源:发表于2016-12-18 17:38 被阅读29次

    配置

    在二级缓存配置成功的基础上进行查询缓存配置

    模型对象Product

    public class Product {
      private Long id;
      private String name;
    

    映射文件Product.hbm.xml

    <class name="Product">
            <id name="id">
                <generator class="native" />
            </id>
            <property name="name" />
        </class>
    

    测试对象MainTest

    public class MainTest {
      @Before
      public void save() throws Exception {
        Product product = new Product();
        product.setName("xxxx");
    
        Session session = HibernateUtils.INSTANCE.getSession();
        session.beginTransaction();
        session.save(product);
        session.getTransaction().commit();
        session.close();
      }
    
      // 模拟同一个SessionFactory,不同session获取hql查询
      // 查询缓存需要先配置类的二级缓存
      // 只发出一条sql:查询缓存命中
      @Test
      public void get() throws Exception {
        Session session1 = HibernateUtils.INSTANCE.getSession();
        String hql = "select p from Product p";
        Query query = session1.createQuery(hql);
        // 放入查询缓存
        query.setCacheable(true);
        System.out.println(query.list().size());
        session1.close();
    
        Session session2 = HibernateUtils.INSTANCE.getSession();
        String hql2 = "from Product";
        Query query2 = session2.createQuery(hql2);
        // 从查询缓存取
        query2.setCacheable(true);
        System.out.println(query2.list().size());
        session2.close();
      }
    }
    

    其他关联项目

    源码地址

    https://github.com/je-ge/hibernate

    如果觉得我的文章或者代码对您有帮助,可以请我喝杯咖啡。
    **您的支持将鼓励我继续创作!谢谢! **

    微信打赏微信打赏
    支付宝打赏支付宝打赏

    相关文章

      网友评论

        本文标题:Hibernate 菜鸟教程 17 查询缓存

        本文链接:https://www.haomeiwen.com/subject/bjhzmttx.html