zoukankan      html  css  js  c++  java
  • hibernate中hql语句中list和iterate区别

    1.使用list()方法获取查询结果,每次发出一条语句,获取全部数据。
    2.使用iterate()方法获取查询结果,先发出一条SQL语句用来查询满足条件数据的id,然后依次按照这些id查询记录,也就是要执行N+1条SQL语句(N为符合条件的记录数)


    两次执行list()方法,每次执行都是发出一条SQL语句,查询所有数据。
    下面看看两次执行iterate()方法的输出情况
    两次执行iterate()方法,第一次执行时发出了N+1条SQL语句,而第二次执行,则只发出一套SQL语句,与先执行list()方法后执行iterate()方法时一致。这种情况产生的原因是因为Hibernate的缓存
    1.list()方法将不会在缓存中读取数据,它总是一次性的从数据库中直接查询符合条件的数据,同时将获取的数据写入缓存。
    2.iterate()方法则是获取了符合条件的数据的id后,首先根据id在缓存中寻找符合条件的数据,若缓存中无符合条件的数据,再到数据库中查询

  • 相关阅读:
    Java 端口转发
    Tomcat笔记
    RocketMQ开启ACL后客户端连接报Algorithm HmacSHA1 not available的解决方式
    RSA签名与验签
    小米9升级MIUI11
    【转】linux awk命令详解
    进程和线程
    Jenkins笔记
    【转】Jenkins启动、停止脚本
    UiAutomator源码分析
  • 原文地址:https://www.cnblogs.com/Xuesk/p/6859665.html
Copyright © 2011-2022 走看看