【Hibernate】Re01.6 HQL
一、支持的查询方式
Hibernate的查询支持三种方式:
1、HQL查询
2、Criteria查询
3、NativeSQL 原生SQL查询
二、HQL查询语言
全称 Hibernate Query Language,是一种面向对象的查询语言
不存在表,字段的概念,只有类和属性的概念,并且Criteria查询也是基于HQL实现的
三、HQL基础语法
[SELECT 别名.属性名] FROM 类名 [AS 别名] [WHERE 查询条件]
如果查询全部可以不需要前面的SELECT语句:
FROM 类名
WHERE条件一般使用指定具体的字段和匹配的值
WHERE 类的别名.属性名 = 值
详细的条件参考地址:
http://blog.sina.com.cn/s/blog_6927adc10100tikv.html
基本的算术运算:
+、-、*、/、
且或非
AND | OR | NOT
或者非空判断:
1、WHERE 别名.属性名 IS NULL 2、WHERE 别名.属性名 IS NOT NULL
非空字符串判断:
1、WHERE 别名.属性名 IS EMPTY 2、WHERE 别名.属性名 IS NOT EMPTY
Member Of ?
MEMBER OF
&
NOT MEMBER OF
Hibernate还提供了相关的表达式,可以处理更为复杂的条件
LOWER(string param) UPPER(string param) YEAR(date param) .....
详细介绍在hibernate-distrbution文件的documentation\manual\zh-CN\pdf目录中查看
四、HQL参数注入
创建HQL查询对象:
一般非固定参数的注入方式,即字符串拼接处理:
当然,HQL也提供了对应的参数注入方式:
所以Hibernate可以对参数注入进行一个遍历的封装:
五、连接查询
1、内连接
FROM xxx.domain.DomainClass [AS dc]
[INNER] JOIN [FETCH] dc.property 2、外连接
FROM xxx.domain.DomainClass [AS dc]
LEFT [OUTER] JOIN [FETCH] dc.property 3、等值链接
FROM
xxx.domain.DomainClass1 AS dc1,
xxx.domain.DomainClass2 AS dc2
WHERE
dc1 = dc2.dc1 4、隐式内连接
FROM
xxx.domain.DomainClass1 AS dc1
WHERE
dc1.dc2.property = ?
6、聚合函数
1、求最大值 MAX(property-param)
2、求最小值 MIN(property-param)
3、求平均值 AVG(property-param)
4、求和 SUM(property-param)
5、计数 COUNT(property-param)
另外还可以结合Object数组的形式和UniqueResult返回上述的结果:
7、分组查询
分组查询的结果并不是按照通常的映射对象结果来处理,也就不存在映射关系
一般的处理是使用List<Obejct[ ]>,和普通SQL相似,这里不再赘述了
8、子查询
对于子查询,HQL提供了几个关键字可以对子查询的结果进行量化处理
1、ALL 子查询的所有记录
2、ANY 子查询的任意记录
3、SOME 子查询的任意记录
4、IN 子查询的任意记录
5、EXISTS 至少返回一条记录
9、集合函数与属性
1、获取集合元素数量,或者称为集合长度 size()
2、获取最小索引,也就是起始索引? minIndex()
3、获取最大索引,也就是结尾索引? maxIndex()
4、最小元素 minElement()
5、最大元素 maxElement()
6、获取所有元素 elements()
在对关联映射的子查询中是非常好用的,可以省略书写大部分的HQL语句
【Hibernate】Re01.6 HQL的更多相关文章
- 【Hibernate】Hibernate的多表查询
在<[Hibernate]Hibernate的聚类查询.分组查询.排序与时间之差>(点击打开链接)一文中已经讲述过怎样利用HQL语句代替SQL语句.进行聚类查询.分组查询.排序与时间之差的 ...
- 【hibernate】映射继承关系
[hibernate]映射继承关系 转载:https://www.cnblogs.com/yangchongxing/p/10405151.html ========================= ...
- 【hibernate】自定义转换器
[hibernate]自定义转换器 转载:https://www.cnblogs.com/yangchongxing/p/10398255.html 1.转换基本属性 package cn.ycx.s ...
- 【hibernate】存储图片
[hibernate]存储图片 转载: package cn.ycx.study.hibernate.entity; import javax.persistence.Entity; import j ...
- 【hibernate】映射可嵌入式组件
[hibernate]映射可嵌入式组件 转载:https://www.cnblogs.com/yangchongxing/p/10376452.html 可嵌入 Address 类,没有对应的数据表 ...
- 【hibernate】应用程序级别的视图
[hibernate]应用程序级别的视图 转载:https://www.cnblogs.com/yangchongxing/p/10361281.html 在没有数据库修改权限时,像创建视图可以使用 ...
- 【hibernate】重写物理表名和列明
[hibernate]重写物理表名和列明 转载:https://www.cnblogs.com/yangchongxing/p/10357123.html 假设你的数据库命名有这样的需求,表都以 yc ...
- 【hibernate】常用注解
[hibernate]常用注解 转载:https://www.cnblogs.com/yangchongxing/p/10357118.html 目录 ======================== ...
- 【hibernate】hibernate不同版本的命名策略
===================================================hibernate 4命名策略如下================================ ...
- 【Hibernate】Hibernate系列6之HQL查询
HQL查询 6.1.概述 6.2.分页查询 6.3.命名查询 6.4.投影查询-部分字段查询 6.5.报表查询 6.6.迫切左外连接.左外连接 6.7.迫切内连接.内连接 6.8.QBC查询.本地查询
随机推荐
- IDEA:java: Compilation failed: internal java compiler error
java: Compilation failed: internal java compiler error 解决方法: 1.打开菜单 ,File - Project Structure - Proj ...
- win10无线网卡不会自动连接
usb接口的网卡.win10无线网卡不会自动连接. 解决方法: 第一步:在控制面板\网络和 Internet\网络连接中,禁用再启用一次无线网络. 第二步:在 控制面板\硬件和声音\电源选项\选择电源 ...
- 模拟登录之web监控
1.什么是web监控 zabbix除了能通过 脚本+自定义key,实现服务器数据提取监控以外 也支持对网页的HTTP请求.响应监控. 2.web监控需求 以zabbix-UI页面的登录监控,模拟登录, ...
- tortoisegit 配置ssh登录
习惯使用小乌龟. 服务器:gitblit 客户端:TortoiseGit 2.13.0.1 (C:\Program Files\TortoiseGit\bin) git version 2.36.1. ...
- 记录一下第一次webSocket通信成功
webSocket前端代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...
- 记一个,生产遇到的redission锁,释放问题:lock.tryLock(0, 0, TimeUnit.SECONDS)
package com.aswatson.cdc.test; import org.redisson.Redisson; import org.redisson.api.RLock; import o ...
- arm linux 移植 ffmpeg 库 + x264 + x265
背景 Ffmpeg 中带有h264的解码,没有编码,需要添加x264.libx264是一个自由的H.264编码库,是x264项目的一部分,使用广泛,ffmpeg的H.264实现就是用的libx264. ...
- 【论文阅读】IROS2022: Dynamics-Aware Spatiotemporal Occupancy Prediction in Urban Environments
0.参考与前言 完整题目: Dynamics-Aware Spatiotemporal Occupancy Prediction in Urban Environments 论文链接:https:// ...
- 3568F-翼辉SylixOS国产操作系统演示案例
- 【Zabbix】Zabbix5.0安装部署问题汇总
报错信息:No package 'oniguruma' found 解决方法:https://www.limstash.com/articles/202003/1563 报错信息: PHP bcmat ...