-
这个hibernate分组查询怎么写5
表StationData如下:
id | station_id | speed | direction | temperature | rainfall | X | Y | create_time
1 | 1 | 12.000 | 20.200 | 23.000 | 1.000 | 2.000 | 0.000 | 2008-07-03 00:00:00
2 | 2 | 15.000 | 16.000 | 22.000 | 2.000 | 2.000 | 0.000 | 2008-07-03 02:05:00
3 | 1 | 14.000 | 13.800 | 13.000 | 2.000 | 2.000 | 3.000 | 2008-07-03 01:00:00
4 | 2 | 15.000 | 26.000 | 22.800 | 5.000 | 3.000 | 4.000 | 2008-07-03 00:00:00
对于表StationData,需要按照station_id来分组查询,根据create_time每次查询出每个station下的最新纪录。根据本表,希望最终得到的查询数据为:
id | station_id | speed | direction | temperature | rainfall | X | Y | create_time
3 | 1 | 14.000 | 13.800 | 13.000 | 2.000 | 2.000 | 3.000 | 2008-07-03 01:00:00
2 | 2 | 15.000 | 16.000 | 22.000 | 2.000 | 2.000 | 0.000 | 2008-07-03 02:05:00
不知道HQL该怎么写,目前我的写法如下,但是不对,还请大家指教。
public List findStationByMaxTime() { try { String queryString = "from StationData as model group by stationId order by createTime desc "; Query queryObject = getSession().createQuery(queryString); queryObject.setFirstResult(0); queryObject.setMaxResults(10); return queryObject.list(); } catch (RuntimeException re) { log.error("find by property name failed", re); throw re; } }
2008年7月03日 04:57
1个答案 按时间排序 按投票排序
-
由于你只给出了表结构,所以建议使用本地sql实现:
这是SQLselect {a.*} from StationData a group by a.station_id having max(create_time)
java码:public List findStationByMaxTime() { try { String queryString = "select {a.*} from StationData a group by a.station_id having max(create_time)"; Query queryObject = getSession().createSQLQuery(queryString); return queryObject.list(); } catch (RuntimeException re) { log.error("find by property name failed", re); throw re; } }
2008年7月03日 10:30
相关推荐
- **标题**:“hibernate criteria 分组 排序 关联”这一标题明确了本文将围绕Hibernate Criteria API进行分组、排序以及关联查询的具体应用进行讨论。 - **描述**:描述部分重复了标题的内容,进一步强调了本文的...
本文将详细介绍如何利用Hibernate进行多表联合查询,并通过一个具体的例子来展示其强大功能。 #### 二、多表联合查询概述 多表联合查询是指在一个查询语句中同时从两个或两个以上的表中获取数据。在关系型数据库中...
例如,如果你需要根据用户的年龄进行分组并计算每个年龄段的用户数量,可以这样写: ```java String hql = "select age, count(*) from User group by age"; List[]> result = session.createQuery(hql).list(); ``...
HQL是Hibernate的SQL方言,它是面向对象的查询语言,允许我们用类和对象的名字而不是表和列来写查询语句。HQL支持各种复杂的查询,如连接查询、分组查询、子查询等。例如,我们可以用以下HQL语句查询所有未删除的...
例如,可以创建一个 Criteria 对象,然后添加各种限制条件、排序和分组,最后执行查询。对于多表连接,Criteria API 可以通过 JoinType 类型的 JOIN 方法实现,如 INNER JOIN、LEFT JOIN 等。 **分页查询** 在大...
HQL支持各种操作,如选择、投影、连接、分组、排序等,还可以进行复杂的条件查询和子查询。例如,以下是一个简单的HQL查询示例,用于获取所有年龄大于30岁的用户: ```java String hql = "FROM User WHERE age > 30...
在Java世界中,Hibernate是一个非常流行的持久化框架,它简化了数据库操作,使得开发者可以更加专注于业务逻辑而不是底层数据...在实际开发中,通常会结合使用这三种查询方式,以充分利用Hibernate的灵活性和强大功能。
【描述】:在ORM框架Hibernate中,数据查询和检索是一个核心功能,它提供了多种查询方式,包括标准化对象查询(Criteria Query)、Hibernate查询语言(HQL)和原生SQL查询。其中,HQL作为官方推荐的查询方式,具有...
这个案例是根据分组查询,并且得到每组的条数,不懂得可以q我:1710086675,欢迎认识更多新朋友
在Java的持久化框架Hibernate中,查询操作是其核心功能之一。本篇主要探讨的是Hibernate对数据库查询中聚合函数的应用,这些功能使我们能够高效地处理数据统计和汇总任务。在学习过程中,我们经常会遇到诸如求和...
例如,你可以创建一个`Criteria`对象,然后添加各种限制条件,如属性比较、分组、排序等,最后调用`list()`方法执行查询。 总的来说,Hibernate的查询操作是灵活且强大的,无论你是使用HQL还是Criteria API,都能...
- **分组查询**:根据一个或多个属性对结果进行分组。 - **排序查询**:通过ORDER BY子句对结果进行排序。 - **关联查询**:处理一对多、一对一、多对多等关联关系的查询。 4. **条件查询** - 使用WHERE子句...
**Hibernate HQL查询** Hibernate Query Language(HQL)是Hibernate框架提供的一种面向对象的查询语言,它是基于Java的,但其语法与SQL类似,用于在Java应用中操作对象。HQL允许开发者用类名和属性名而不是表名和...
本节我们将深入探讨Hibernate中的HQL(Hibernate Query Language)查询,这是一种专为Hibernate设计的面向对象的查询语言,类似于SQL但更贴近于Java程序员的思维。 首先,HQL查询的基本语法结构与SQL类似,但对象化...
在这个例子中,`createQuery`方法用于创建HQL查询,"from User"表示我们要从`User`实体中选取数据。`list()`方法执行查询并返回结果列表。 HQL的强大之处在于它可以处理复杂的查询,比如分组、排序、连接等,例如:...
本资源“Hibernate QBC高级查询”聚焦于Hibernate Query by Criteria(QBC)的高级用法,旨在帮助开发者深入理解并熟练运用这一强大的查询机制。 Query by Criteria是Hibernate提供的另一种查询方式,与HQL...
《Hibernate 3.6 中文 CHM》是一个针对Hibernate 3.6版本的详细使用指南,旨在帮助开发者理解和掌握这个强大的对象关系映射(ORM)框架。Hibernate是Java开发中的一个重要工具,它允许程序员以面向对象的方式处理...
### Hibernate中HQL语句查询学习笔记 #### HQL基础 **HQL**(Hibernate Query Language)是Hibernate框架推荐使用的查询语言,它提供了一种面向对象的方式来查询数据库,支持多种复杂的查询操作,如继承、多态及...
`Hibernate HQL.ppt`则可能深入讲解HQL的使用,包括如何进行条件查询、分组、排序、联接操作等。此外,可能会涉及到Criteria API,这是另一种在Hibernate中进行动态查询的方式,提供了更加面向对象的查询接口。 总...