HQL查询中取个别几个字段

数据表:

要求:查询type为4001,以content分组,本计算不重复的pcInfoId

MySQL语句:

SELECT COUNT(DISTINCT pcInfoId) AS COUNT,content,TIME FROM vrv_paw_reportlog WHERE TYPE=‘4001‘ GROUP BY content

对应的HQL语句:

 SELECT  new map(COUNT(distinct this.pcInfo.id) AS count,this.content as content,this.time as time)
 From com.vrv.paw.domain.ReportLog this
 Where this.type=4001
 Group by this.content

注:

使用关键字as给“被选择了的表达式”指派别名:

select max(bodyWeight) as max, min(bodyWeight) as min, count(*) as n
from Cat cat

这种做法在与子句select new map一起使用时最有用:

select new map( max(bodyWeight) as max, min(bodyWeight) as min, count(*) as n )
from Cat cat

该查询返回了一个Map的对象,内容是别名与被选择的值组成的名-值映射

这样可以方便产生JSON字符

我犯的一个错误:

时间: 2024-08-26 18:30:55

HQL查询中取个别几个字段的相关文章

Hibernate 之强大的HQL查询

Hibernate  配备了一种非常强大的查询语言,这种语言看上去很像  SQL.但是不要被语法结构上的相似所迷惑,HQL  是非常有意识的被设计为完全面向对象的查询,它可以理解如继承.多态和关联之类的概念. 基本规则 HQL语法类似于SQL,也是一种select from结构的语句.但是他后面跟的不是表名和字段名,而是类名和属性名. HQL基本查询语法跟SQL很类似 HQL大小写不敏感.但是,设计java类名.包名.属性名时大小写敏感. 包名的使用情况.比如:如果注册的实体类Emp只有一个类,

HQL查询

HQL(Hibernate QueryLanguage) 是面向对象的查询语言,它和SQL查询语言有些相似. 1.Select/update/delete-- from -- where -- group by -- having --order by -- asc/desc 2.select语句 1.查询出来整个映射对象 String hql = "from Users"; Query query = session.createQuery(hql); List<Users&g

Hibernate HQL查询:

Hibernate HQL查询:Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Lanaguage)查询提供了更加丰富的和灵活的查询特性,因此Hibernate将HQL查询方式立为官方推荐的标准查询方式,HQL查询在涵盖Criteria查询的所有功能的前提下,提供了类似标准SQL语句的查询方式,同时也提供了更加面向对象的封装.完整的HQL语句形势如下:Select/update/delete…… from …… where …

转: Hibernate HQL查询 插入 更新(update)实例

1.实体查询:有关实体查询技术,其实我们在先前已经有多次涉及,比如下面的例子:String hql=”from User user ”;List list=session.CreateQuery(hql).list();上面的代码执行结果是,查询出User实体对象所对应的所有数据,而且将数据封装成User实体对象,并且放入List中返回.这里需要注意的是,Hibernate的实体查询存在着对继承关系的判定,比如我们前面讨论映射实体继承关系中的Employee实体对象,它有两个子类分别是 Hour

Hibernate HQL查询 插入 更新(update)实例

1.实体查询:有关实体查询技术,其实我们在先前已经有多次涉及,比如下面的例子:String hql=”from User user ”;List list=session.CreateQuery(hql).list();上面的代码执行结果是,查询出User实体对象所对应的所有数据,而且将数据封装成User实体对象,并且放入List中返回.这里需要注意的是,Hibernate的实体查询存在着对继承关系的判定,比如我们前面讨论映射实体继承关系中的Employee实体对象,它有两个子类分别是 Hour

第六讲(二) Hibernate HQL查询

HQL查询:Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Lanaguage)查询提供了更加丰富的和灵活的查询特性,因此Hibernate将HQL查询方式立为官方推荐的标准查询方式,HQL查询在涵盖 Criteria查询的所有功能的前提下,提供了类似标准SQL语句的查询方式,同时也提供了更加面向对象的封装.完整的HQL语句形势如下:Select/update/delete…… from …… where …… group b

Hibernate HQL查询语句总结

Hibernate HQL查询语句总结 1. 实体查询:有关实体查询技术,其实我们在先前已经有多次涉及,比如下面的例子:String hql="from User user ";List list=session.CreateQuery(hql).list();上面的代码执行结果是,查询出User实体对象所对应的所有数据,而且将数据封装成User实体对象,并且放入List中返回.这里需要注意的是,Hibernate的实体查询存在着对继承关系的判定,比如我们前面讨论映射实体继承关系中的E

hibernate HQL查询的参数绑定

参数绑定: Hibernate中对动态查询参数绑定提供了丰富的支持,那么什么是查询参数动态绑定呢?其实如果我们熟悉传统JDBC编程的话,我们就不难理解查询参数动态绑定,如下代码传统JDBC的参数绑定: PrepareStatement pre=connection.prepare(“select * from User where user.name=?”); pre.setString(1,”zhaoxin”); ResultSet rs=pre.executeQuery(); 在Hibern

MySQL查询-分组取组中某字段最大(小)值所有记录

最近做东西的时候,用到一个数据库的查询.将记录按某个字段分组,取每个分组中某个字段的最大值的所有记录.举栗子来说. 已知分数表“score”,包含字段“id", "name", "course", "score".包含记录如下图所示. 现在,要求查询每个人分数最高的课程的那一条记录.即获得如下结果: 大概思路是,先通过order by将记录按score字段排序,创建临时表.然后按name字段分组查询临时表,即可获得所需查询结果.完整的s