HQL的使用-part2 hql的查询(4)

Hive元数据信息表详解 hive元数据表的基本情况 阅读详情

4.6.1 HQL 查询(4)

7. orderby 子句

查询返回的列表(list),可以根据类或引用属性的任何属性来进行排序,例如:from Person as porder by p.name, p.age还可使用ase 或 dese关键宇指定升序或降序的排序规则,例如:

from Person as porder by p.name asc, p.age desc

如果没有指定排序规则时,默认采用升序规则。与是否使用asc 关键字没有区别,加 asc 是升序排序,不加asc 也是升序排序。

8. group by子句

利用返回聚集值的查询,可以对持久化类或引用属性的属性进行分组,分组时可使用 groupby 子句。看下面的HQL查询语句:

select cat.color, sum(cat.weight) , count(cat)
from Cat catgroup by cat.color

类似于 SQL 的规则,出现在 select 后的属性要么出现在聚集函数中,要么出现在group by 的属性列表中。看下面示例:

//select 后出现的 id 处出现在 group by 之后,而 name 属性则出现在聚集函数中
select foo.id,avg(且arne) , max(name)
from Foo foo join foo.names namegroup by foo. id

having子句用于对分组进行过滤,例如:

select cat.color, sum(cat.weight) , count(cat)from Cat catgroup 
by cat.colorhaving cat.color in (eg.Color.TABBY, eg.Color.BLACK)

注意: having子句用于对分组进行过滤,因此having子句只能在有groupby 子句时才可以使用,没有groupby 子句,则不能使用having子句。

Hibernate可将 HQL语句直接翻译成数据库SQL语句。因此,如果底层的数据库支持在having和 groupby子句中出现的一般函数或聚集函数,则HQL的 having与 orderby子句中也可以出现一般函数和聚集函数。例如:

select catfrom Cat catjoin cat.kittens kittengroup by 
cathaving avg(kitten.weight)
> 100order by count(kitten) asc, sum(kitten.weight) desc

注意:group by 子句与 orderby 子句中都不能包含算术表达式。

9. 子查询

如果底层数据库支持子查询,则可以在HQL 语句中使用子查询。与 SQL 中子查询相似的是, HQL 中的子查询也需要使用 "0" 括起来。例如:

from Cat as fatcatwhere fatcat.weight > 
( select avg(cat.weight) from DomesticCat cat)
如果 select 中包含多个属性,则应该使用元组构造符:
from Cat as catwhere not ( cat.name, cat.color )in(
select cat.name, cat.color from DomesticCat cat

10. fetch 关键字

对于集合属性, Hibernate 默认采用延迟加载策略。例如,对于持久化类Person,有无法访问关联的 scores 属性。

为了解决该问题,可以在Hibetτlate 映射文件中取消延迟加载,或者使用 fetchjoin。例如:

from Person as p join p.scores

上面的fetch语句将会初始化person 的 scores集合属性。

如果使用了属性级别的延迟加载,可以用fetchall properties 来强制 Hibernate 立即抓取那些原本需要延迟加载的属性。例如:

from Document fetch all properties order by namefrom Document
doc fetch allpropertieswhere lower(doc.name)like'%cats%

11.命名查询

HQL 查询还支持将查询所用的HQL语句放入配置文件中,而不是代码中。通过这种方式,可以大大提高程序的解祸。

下面是使用que可元素定义命名查询的配置文件代码:

<!定义命名查询-->
<query name="myNamedQuery">
<!--此处确定命名查询的HQL语句一〉
from Person as p where p.age > ?
</query>
该命名的HQL查询可以直接通过Session访问,调用命名查询的示例代码如下:
private void findByNamedQuery() throws Exception
//获得 Hibernate Session对象
Session sess = HibernateUtil.currentSession();
//开始事务
Transaction tx = sess.beginTransaction();
System.out.println("执行命名查询");
//调用命名查询
List pl =sess.getNamedQuery( 叮nyNamedQuery")
//为参数赋值
.setinteger(O, 20)
//返回全部结果
.list();
1I:ll!i历结果集for(iteratorpit = pl.iterator() ; pit.hasNext(); )
Person p = ( Person )pit.next();
System.out.println(p.getName() ;
/I提交事务
tx.commit();
HibernateUtil.closeSession();

数据治理中的元数据采集(从Hive元数据库中获取ods层表的元数据信息) 最近在做的数据治理项目中有个业务需求是:从hive的元数据库中获取到贴源层(也就是ods层)下所有表的元数据信息,这里大致描述一下实现的过程。 一、前期准备知识: Hive元数据信息对应的MySQL数据库表 Hive 的元数据信息通常存储在关系型数据库中,常用MySQL数据库作为元数据库管理。Hive的元数据信息在MySQL数据中有57张表: mysql> show tables; ±--------------------------+ | Tables_in_metastore_spark | ± 阅读详情

相关推荐

FreeFEM++下载安装和使用

最近要利用机器学习求解一些偏微分方程,对于一些复杂的偏微分方程,需要一些精度比较高的参考解,导师推荐了FreeFEM++软件。首次使用,特此记录一下,以备以后查阅。 1、FreeFEM++简介 FreeFEM是开源的有限元模拟系统,有法国利翁斯实验室、埃尔和玛丽居里大学共同开发,在世界范围内广泛使用。 2、FreeFEM++去何处下载? 下载地址:https://freefem.org/ 点击Download,然后会跳转到 https://github.com/FreeFem/FreeFem-source

夜晓岚的博客 1万+

HQL的使用-part2 hql的查询(1)

 4.6 Hibernate 查询体系Hibernate 提供了异常强大的查询体系,有多种查询方式可以供我们使用。如Hibernate 的 HQL 查询或者使用条件查询,甚至可以使用原生的 SQL 查询语句等。另外还提供了一种数据过滤功能,这些都用于筛选目标数据。下面分别介绍 Hibernate 的四种数据筛选方法4.6.1 HQL 查询(1)HQL 是 HibernateQuer

801

用KalmanNet搞定非线性状态估计:当卡尔曼滤波遇上神经网络

本文深入探讨了KalmanNet如何将神经网络与卡尔曼滤波结合,以解决非线性状态估计中的模型失配和噪声不确定性问题。通过保留经典滤波框架并用RNN学习卡尔曼增益,该方法在无人机导航、机器人定位等场景中实现了模型驱动与数据驱动的优势互补,提升了估计的鲁棒性和灵活性。

mango的博客 309

HQL的使用-part2 hql的查询(2)

 4.6.1 HQL 查询(2)3. 聚集函数HQL 也支持在选出的属性上使用聚集函数。HQL 支持的聚集函数与 SQL 完全相同,有如下 5 种。avg: 计算属性平均值。count: 统计选择对象的数量。max:统计属性值的最大值。min: 统计属性值的最小值。sum: 计算属性值的总和。例如:select count(*) from Perso

720

VMvare 桥接模式无法联网、没有未桥接的主机网络适配器,无法将网络更改为桥接状态。

很多程序员,整天沉浸在业务代码的 CRUD 中,业务中没有大量数据做并发,缺少实战经验,对并发仅仅停留在了解,做不到精通,所以总是与大厂擦肩而过。我把私藏的这套并发体系的笔记和思维脑图分享出来,理论知识与项目实战的结合,我觉得只要你肯花时间用心学完这些,一定可以快速掌握并发编程。《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!战项目源码讲义》点击传送门即可获取!**

q16974058的博客 4330

Mixly 数码管时钟

  本文是米思齐数码管图形化编程实验总结分享,走过路过的来看看吧,其中的不足望指出。 一、实验目的及要求 【实验一】实现滚动显示自定义字符串。 【实验二】实现显示自定义时间。 【实验三】实现显示秒表。 二、实验原理与内容 实现米思齐的数码管图形化编程。 三、实验软硬件环境 硬件:Arduino、TM1637数码管 软件:Mixly IDE 四、核心代码及实验效果如下所示 1.实现滚动显示...

weixin_44614199的博客 1648

HQL的使用-part2 hql的查询(3)

 4.6.1 HQL 查询(3)6. 表达式HQL 的功能非常丰富,其where 子句后支持的运算符异常丰富,不仅包括SQL 的运算符,也包括EJB-QL的运算符等。where子句中允许使用大部分SQL支持的表达式。数学运算符+,-, *,1 等。二进制比较运算符=,>=,, !=, like 等。逻辑运算符 and,or,not 等。in, not in, between

834

[STM32F103C8T6]W5500+Modbus TCP(HAL库)

本章节是博主学习Modbus TCP所写的一篇文章Modbus TCP是Modbus的一个分支,主要用到网口通信的,在工业上也用的很频繁,我们公司最近的项目就是用的W5500+modbus TCP来和PC端的上位机通信和交互的。虽然这个项目不是我在写代码,但是我都学了Modbus RTU了,那我也抽空学习一下Modbus TCP吧。本次的Modbus TCP不是博主写的,是一个大佬开源的一个W5500写的一个Mobus TCP代码,我在这个基础上自己写了主机读从机多个数据,和主机写从机寄存器的函数。

sinat_58149788的博客 4086

Hive概述纲要、环境配置以及HQL使用

hive概述Hive产生背景Hive是什么为什么要使用Hivehive的数据结构hive的基本操作hive的数据类型hive 元数据Hive的体系架构 Hive部署架构Hive与RDBMS的关系、区别Hive的优缺点Hive适用场景hive存储文件格式和压缩Hive环境搭建hive概述hive是大数据仓库软件,它提供了sql的方式简化大数据mapreduce的数据读取写入统计。并提供了多种使用途径...

OnTheRoad的博客 1万+

巡检类机器人电池容量计算方法论(原理+算法+真实案例)

摘要:本文系统阐述了巡检机器人电池容量的计算方法,重点解析了;能量平衡;核心原理和三种主流算法。通过光伏电站履带式巡检机器人的真实案例,详细演示了从工况拆解、功耗采集到容量计算的完整流程。文章指出:室内轻载场景可采用静态平均功耗法,户外常规工况推荐动态负载积分法,而复杂环境需采用融合估算算法。特别强调需考虑温度修正(冬季容量衰减20%)、冗余系数(1.2-1.5)和放电深度(磷酸铁锂DoD取80%)等关键参数。

start_up_go的博客 243

9、傅里叶变换:连续时间与离散时间信号分析的核心工具

本文深入探讨了傅里叶变换在连续时间和离散时间信号分析中的核心作用,详细介绍了连续时间傅里叶变换(CTFT)和离散时间傅里叶变换(DTFT)的定义、性质及其应用。文章涵盖了傅里叶级数到傅里叶变换的推导过程、常见变换对、系统分析中的关键性质,并讨论了采样后频谱的周期延拓与混叠问题。此外,还展示了傅里叶变换在滤波器设计、通信系统调制解调等实际场景中的应用,最后展望了其在图像处理、生物医学等领域的广阔前景。

jump7的博客 67

HibernateCRUD基础框架(2)-HQL语句构造器(HqlQueryBuilder,HqlUpdateBuilder)

上篇讲述了最基本的实体类,本篇接着讲述HQL语句构造器,包括查询和更新等。优点:通过面向对象的方式构造HQL语句,更快捷,不需要手动拼接HQL。缺点:封装可能降低性能,只能支持常用的和较为简单的HQL构造。 部分功能不完善,待开发。1.HQL语句构造器package cn.fansunion.hibernate.sql; import org.apache.common...

weixin_30907523的博客 112

手把手教你五种方案配置Obsidian免费同步,全平台通用(支持Alist/OpenList)

Obsidian是一款优秀的Markdown笔记工具,但官方同步服务每年近700元让人望而却步💸 本文整理了5种免费同步方案,涵盖苹果生态专属方案、多网盘插件同步、版本管理同步、点对点同步、自建实时同步等不同场景📱💻 每种方案都附有详细配置步骤,助你找到最适合的同步方式✨

XiaoqiangClub的博客 1832

NHibernate(Part2)

In my last article, I introduced NHibernate, which is an open-source object/relational mapping framework newly available to .NET developers. I have been rightly criticized (both here and in other foru...

weixin_30729609的博客 139

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

关于解决hibernate左连接关联查询不执行的问题

hql是这样的: String vrsql = "From VehicleRelevance as vr left join fetch vr.partRelevance as pr where vr.vehicle_id=1 and pr.part_id=2"; 但是pr.part_id是作为partRevelance标的外键 所以必须这样配置://这个字段作为外键多对一可以省略 但是作为

ahhmdwg的专栏 1669

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

转载:整合Struts+Hibernate+Spring应用开发详解

http://book.youkuaiyun.com/bookfiles/562/10056218647.shtml4.3  使用HQL查询Hibernate提供了异常强大的查询体系,使用Hibernate有多种查询方式。可以选择使用Hibernate的HQL查询,或者使用条件查询,甚至可以使用原生的SQL查询语句,此外还提供了一种数据过滤功能,这些都可用于筛选目标数据。下面分别介绍Hiberna

1197

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

SQL进阶基础(面试基础)— Part 2

前言 本文原题及实验数据均出自:http://www.cnblogs.com/edisonchou/p/3886801.html,但本文是基于SQL Server的训练模型,经过笔者的简单改动,现用于训练SQL/HQL。本文只针对DML语句进行训练,原文中还有很多DDL训练,如有兴趣,可自行训练。 本题用到下面三个关系表: CARDS 借书卡。 ID卡号,NAME 姓名,CLASS 班级 ...

Data-Forest 498

大数据入门必学:Hive 数据仓库从入门到实战(图文详解)

如果你刚接触大数据,你一定听说过 Hive。它是大数据领域最常用的数据仓库工具之一,也是面试和工作中绕不开的重点。本文将从关系型数据库的局限讲起,逐步深入 Hive 的架构原理、数据模型、安装部署、常用操作,最后带你了解 HWI 和 HiveServer2 的部署与使用。关系型数据库(RDBMS)是建立在关系模型基础上的数据库,通俗地说,它由多张表组成,表与表之间通过主键/外键建立关联。记录(Row):数据行字段(Column):数据列表(Table):数据行的集合。

2601_96010888的博客 244

Hibernate Part5

Hibernate Strategy

qq_33840797的博客 213

BG.Hive - part1

1. Hive架构   What is hive?  Facebook,https://en.wikipedia.org/wiki/Apache_Hive   a> 一种工具,可以通过SQL轻松的访问数据,可以完成数据仓库任务,如ETL,报表及数据分析   b> 一种机制,增强多样化数据格式的结构   c> 数据访问,HDFS或者其他的数据存储系统(HBase)...

weixin_30270561的博客 203

Hibernate Part 2:单表CRUD

使用Hibernate实现单表CRUD,数据库使用MySQL建立customer表 create database test; create table customer ( id int primary key auto_increment, name varchar(20), age int, city varchar(20) );   创建JavaBean对象 ...

嬡仩岼疧嚡囡陔 119

Hibernate Part1

Hibernate Part1

qq_33840797的博客 296

达观数据文辉:Hadoop和Hive使用经验

近十年来,随着Hadoop生态系统的不断完善,Hadoop早已成为大数据事实上的行业标准之一。面对当今互联网产生的巨大的TB甚至PB级原始数据,利用基于Hadoop的数据仓库解决方案Hive早已是Hadoop的热点应用之一。达观数据团队长期致力于研究和积累Hadoop系统的技术和经验,并构建起了分布式存储、分析、挖掘以及应用的整套大数据处理平台。本文将从Hive的原理、架构及优化等方面来分享Hive的一些心得和使用经验,希望对大家有所收货。

达观数据 2837

[一起学Hive]之十五-分析Hive表和分区的统计信息(Statistics)

关键字:Hive统计信息、分析Hive表、Hive Statistics 类似于Oracle的分析表,Hive中也提供了分析表和分区的功能,通过自动和手动分析Hive表,将Hive表的一些统计信息存储到元数据中。 表和分区的统计信息主要包括:行数、文件数、原始数据大小、所占存储大小、最后一次操作时间等; 14.1 新表的统计信息 对于一个新创建的表,默认情况下,如果通过IN

thy822的专栏 1090

分布式数据库原理及技术

可以使用location子句指定表在 HDFS 上的存储路径,此时不会自动创建数据库.db/表名的层级目录,而是直接使用给定路径。要求:location 路径最好与默认管理体系一致,且精确到表名级别;建表时若有其他约束,location必须放在最后一行。此时 HDFS 上只有/testdb目录,不会出现。通常推荐的做法是让 location 的末级目录与表名一致,并放在数据库目录下,以便管理。

2403_86838294的博客 287
上一篇: HQL的使用-part2 hql的查询(3)
下一篇: Hibernate中Criteria的完整用法
EvaTian
博客等级 码龄19年 45粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值