`
simpledev
  • 浏览: 196210 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Hibernate count如何映射?HQL别名字段问题?

 
阅读更多

问:hibernate, select name, count(*) from table group by name。这句话应该怎么用HQL语句执行?或者在hibernate中该怎么查出每个name对应的count?

 

答:String hql = "select name, count(*) from table group by name";   //跟sql语句差不多的,不过这里的name是类的属性,table 是类名,因为HQL是面向对象的查询的语言。

首先要获得session,你懂的,
然后  Query query = session.createQuery(hql);
List list = query.list();
获取list里面的name :
Iterator it = lits.iterator();
if(it.hasNext()){
    Object[]  obj = (Object[]) it.next();
    String name = obj[0];
    int count = obj[1];
}

 

在项目开发中的具体情况:

//关键是处理count映射问题。120221 hjl
	            String q = "select userId, nickName, count(id)  from BbscsLogintimes  where LoginYear = ? and LoginMonth = ?  group by userId order by col_2_0_ desc";
   
				Query query = session.createQuery(q);
				query.setLong(0, Long.valueOf(year));
				query.setLong(1, Long.valueOf(mon));  
	            List list = query.list();	 
	            
	            //封装
	            List list2 = new ArrayList();
	            BbscsLogintimes logintimes= null;
	            Iterator it = list.iterator();
	            long j = 1;
	            while(it.hasNext()){
	            	logintimes = new BbscsLogintimes();
	                Object[]  obj = (Object[]) it.next();
	                logintimes.setOrderId(j);
	                logintimes.setOrderName((String) obj[1]);
	                logintimes.setOrderNum((Integer)obj[2]);
	                list2.add(logintimes);
	                j++;
	            }

 

说明:HQL别名字段

hibernate执行时打印出HQL
<property name="show_sql">true</property>

Hibernate: select bbscslogin0_.UserID as col_0_0_, bbscslogin0_.NickName as col_1_0_, count(bbscslogin0_.ID) as col_2_0_ from bbscs6.bbscs_logintimes bbscslogin0_ where LoginYear=? and LoginMonth=? group by bbscslogin0_.UserID order by col_2_0_ desc limit ?

UserID别名 ~ col_0_0_
NickName别名 ~ col_1_0_
count(bbscslogin0_.ID)别名 ~ col_2_0_

所以上面的HQL语句:group by userId order by col_2_0_ desc  //按count统计量来降序排列。

 

 

 

 

 

 

 

 

 

<!-- 挪到后面去了 <span jwcid="@If" condition="prop:userCanSeeAnswerQuestion"> <div class="answer_question"><input id="meAnswer" value="我来回答" type="button"></input> </div> </span> --><!-- 除了 已解决还需要吗?--><!-- 没了 <span jwcid="@If" condition="ognl:userHasEditorTransferAuthority && questionBeTransered && !hiddenUserOpr" volatile="prop:true"> <div class="shift_record"> 转移QQ号:<span jwcid="@Insert" value="prop:lastTransfererId">21993961</span>&nbsp;&nbsp;&nbsp;&nbsp;时间:<span jwcid="@Insert" value="prop:lastTransferedTime">2008-08-27 17:34</span> </div> </span> -->

分享到:
评论

相关推荐

    Hibernate注解方式、HQL查询

    在Java世界中,Hibernate是一个非常流行的对象关系映射(ORM)框架,它简化了数据库操作,使得开发者可以使用面向对象的方式来处理数据。本篇将详细探讨Hibernate的注解方式以及HQL(Hibernate Query Language)查询...

    Hibernate数据检索(HQL).rar

    在Java开发领域,Hibernate是一个非常重要的对象关系映射(ORM)框架,它简化了数据库操作,使得开发者可以使用面向对象的方式来处理数据。本教程重点聚焦于Hibernate的数据检索机制,特别是Hibernate查询语言(HQL...

    Hibernate-HQL.rar_HQL_hibernate hql

    本篇文档将深入探讨Hibernate中的HQL(Hibernate Query Language),一种面向对象的查询语言,它提供了与SQL类似的语法,但更贴近于面向对象的思维模式,使得开发者可以更加便捷地进行数据查询。 一、HQL简介 HQL是...

    hibernate_hql.rar_HQL

    Hibernate,作为一款强大的对象关系映射(ORM)框架,极大地简化了Java开发者与数据库之间的交互。其中,Hibernate查询语言(HQL)是其核心特性之一,它为开发者提供了一种面向对象的查询方式,类似于SQL,但更贴近...

    hibernate-hql 资料大全

    Hibernate HQL,全称为Hibernate Query Language,是Hibernate框架中用于操作对象关系映射(ORM)的查询语言。它类似于SQL,但设计目的是针对Java对象,而不是数据库表。HQL允许开发者以面向对象的方式编写查询,...

    HibernateHql综合测试小程序

    本程序“HibernateHql综合测试小程序”是针对Hibernate中的HQL(Hibernate Query Language)进行的一系列功能测试,涵盖了二十多种不同的HQL语句,旨在帮助开发者深入理解和熟练运用Hibernate的查询能力。...

    hibernate3.2 (十)HQL查询

    【hibernate3.2 (十)HQL查询】这篇博文主要探讨了Hibernate框架中的HQL(Hibernate Query Language)查询语言,它是Hibernate提供的一种面向对象的查询语言,用于操作持久化对象,类似于SQL但更加面向对象。...

    精通hibernate HQL语言

    在深入探讨Hibernate的HQL语言之前,我们先理解一下什么是HQL。HQL,全称Hibernate Query Language,是Hibernate框架提供的一种面向对象的查询语言,它的语法结构与SQL相似,但主要针对对象和实体进行操作,而不是...

    hibernate查询语句--HQL

    Hibernate 是一个开源的对象关系映射 (ORM) 框架,它允许开发人员将 Java 对象映射到数据库表中的记录,从而简化了数据访问逻辑。在 Hibernate 中,执行查询操作的主要方式之一是使用 Hibernate 查询语言(HQL)。 ...

    Hibernate HQL.txt

    根据提供的文件信息,我们可以深入探讨Hibernate HQL(Hibernate Query Language)的相关知识点,特别是关于其查询功能、连接操作、条件过滤以及聚合函数的应用等。 ### Hibernate HQL简介 Hibernate HQL是一种...

    Hibernate-HQL-查询-Query资料

    - HQL是Hibernate提供的面向对象的查询语言,与SQL类似,但更加面向对象,将数据库表映射为Java类,表中的行映射为类的对象。 - HQL与JPA的JPQL相似,都是为了提高代码的可读性和可维护性,避免硬编码SQL。 2. **...

    Hibernate之HQL查询

    在Hibernate中,HQL(Hibernate Query Language)是其内置的一种面向对象的查询语言,它是SQL的面向对象版本,用于检索和操作持久化对象。HQL查询的使用极大地提高了开发效率,因为它将数据操作与具体的数据库结构...

    Hibernate HQL精华

    《Hibernate HQL精华详解》 Hibernate 是一个强大的Java持久化框架,它简化了数据库操作,使得开发者能够通过面向对象的方式处理数据库事务。其中,Hibernate Query Language(HQL)是Hibernate提供的面向对象的...

    hibernate-HQL用例

    **hibernate-HQL用例** Hibernate 是一个强大的Java持久化框架,它简化了与关系数据库之间的交互。HQL(Hibernate Query Language)是Hibernate提供的面向对象的查询语言,类似于SQL,但更贴近Java对象的思维模式。...

    hibernate hql大全

    但需要注意结果映射到Java对象的问题。 ### 9. **参数绑定** 在HQL中,可以使用`?`或`:paramName`作为参数占位符,防止SQL注入,例如: ```java String query = "from Employee e where e.name = :name"; Query q...

    hibernate 中HQL语句查询学习笔记

    可以在Hibernate的映射文件中定义HQL查询: ```xml SELECT s FROM Student s WHERE s.sdept = :dept ``` 这样可以直接在代码中引用这些预定义的查询。 #### HQL的嵌套子查询 子查询是在另一个查询内部的查询...

    HQL学习教程Hibernate入門

    **HQL学习教程Hibernate入门** Hibernate是一个开源的Java ORM(对象关系映射)框架,它允许开发者用面向对象的方式操作数据库。HQL(Hibernate Query Language)是Hibernate提供的一种面向对象的查询语言,与SQL...

    Hibernate HQL详解.docx

    Hibernate HQL,全称为Hibernate Query Language,是Hibernate框架中用于操作数据库的一种面向对象的查询语言。它允许开发者用面向对象的方式来编写查询语句,极大地提高了开发效率和代码的可读性。以下是对HQL的...

    Hibernate 经常用的一些HQL语句

    标题:“Hibernate 经常用的一些HQL语句” 描述:“可以让我们更方便的学习Hibernate” ### HQL(Hibernate Query Language)在Hibernate中的应用 HQL是Hibernate框架提供的查询语言,它允许开发者以面向对象的...

Global site tag (gtag.js) - Google Analytics