zoukankan      html  css  js  c++  java
  • Hibernate-HQL

    Hibernate Query language,语法同SQL基本一致,但其中使用的实体类和类的属性,而非表名和表的列名

    声明

    Query query = session.createQery(String hql);

    查询

    list

    返回List对象

    List<POJO> list = query.list();

    iterate

    返回Iterator对象

    Iterator<POJO> it = query.iterate();

    listiterate的区别

    list会一次性查询所有结果。

    iterate会一次性查询所有主键,并在调用iterator.next()时优先查询缓存中该主键对应的记录。

    iterate会更好的利用缓存。

    select

    选择多个列时,返回List<Object[]>列表

    占位符

    PreparedStatement一样,可以使用占位符'?'

    设置占位符的值: query.setType(index, value); //index0开始

    使用名称

    在需要设置占位符的地方使用 ':占位名'

    设置占位名的值: query.setType("占位名", value);

    迫切连接

    使用join时,只有在调用多方结果实体的具体属性时才会真正进行查询。

    可使用迫切内连接一次性取出所有对象

    join后添加fetch关键词

    命名的HQL

    配置

    可在配置文件中定义HQL后再代码中调用

    <query name="命名">

    <![CDATA[ HQL语句]]>

    </query>

    调用

    Query query = session.getNameQuery("命名");

  • 相关阅读:
    洛谷P3796
    cf1291c-Mind Control
    莫比乌斯函数
    C. Mixing Water(三分)
    E. Modular Stability(思维构造)
    【美团杯2020】平行四边形
    原根定义
    E. Are You Fired?(思维)
    102606C. Coronavirus Battle time limit per test4 seconds(三维拓扑序)
    E
  • 原文地址:https://www.cnblogs.com/AlMirai/p/12546545.html
Copyright © 2011-2022 走看看