`
liuwei1981
  • 浏览: 772058 次
  • 性别: Icon_minigender_1
  • 来自: 太原
博客专栏
F8258633-f7e0-30b8-bd3a-a0836a5f4de5
Java编程Step-by...
浏览量:161223
社区版块
存档分类
最新评论

hql语句实现查询对象部分属性

阅读更多
最近做了一个网站,在运行一段时间出现内存耗尽,导致服务器宕机,具体问题是:对于一个News新闻对象,在新闻列表页面,我们只要得到其主键、标题、发布日期和浏览次数几个属性,原来的代码直接使用这样的语句:
 
FROM News WHERE +条件语句
 
  获取了新闻对象列表,取出了新闻对象的全部属性,但实际上并不需要其内容和其他的属性,因为内容都是比较大的,所以会浪费不少内存。

    我使用的是hibernate3.2,hql语句查询出来的都应该是对象的。
 
    把hql改写成这样——
 
select id,title,pubDate,num from News where……"
    
来实现,但是,这样查询出来的是一个对象数组,需要新建一个News对象,然后把属性一一赋值进入,太麻烦了。
google了以下(懒得看文档了),发现可以通过如下方法解决:

1.首先在News实体里面加一个构造函数,把要查询出来的字段当参数传进去

public News(intid,String title,String pubDate,int num){ 

} 
 
2.然后改写
 
hql="select new News(id,title,pubdate,num) from Document where……" 
 
这样,查询出来的就是News对象,而且只有主键、标题、发布日期和浏览次数几个属性,其他的为Null。
分享到:
评论
1 楼 liyi745 2011-11-04  

另外我在3.3下测了下,如果只select一条属性
例如 select title from News where……" 
那么返回到list.get(i)正是title 所属的数据类型,而不是Object[]了

相关推荐

    全面解析HQL语句 非常详细直接的HQL语句的功能介绍

    `from`子句是HQL语句的基础,用于指定查询的数据源。例如,`from Person as p`表示查询的目标是从`Person`实体类中选择所有实例。此子句支持简单的全表扫描,也能够进行更复杂的多表联接查询。 ### 2. select子句 ...

    HQL语句大全HQL语句大全

    - 使用Session的`createQuery`方法来创建Query对象,并将HQL语句作为参数传入。 ```java Query query = session.createQuery(hql); ``` 4. **设置参数值** - 如果HQL语句中有参数,则需要为这些参数设置值。 ...

    hql语句大全hql语句大全

    ### HQL语句详解:精通Hibernate查询语言 #### 引言 HQL(Hibernate Query Language)是Hibernate框架中用于执行数据库操作的一种强大的查询语言。它提供了面向对象的语法,允许开发人员以一种接近于编程语言的方式...

    Hibernate中HQL语句的使用[参考].pdf

    Hibernate中HQL语句的使用 ...HQL语句可以用于各种查询场景,包括简单属性查询、多个属性的查询、使用别名、实体对象查询、外置命名查询、查询过滤器、分页查询、对象导航查询、连接查询和统计查询等。

    HQL语句的语法

    以下将详细介绍HQL语句的几个关键部分: 1. **from 子句**:这是HQL查询的起点,用于指定要查询的持久化类。例如,`from Person as p`表示从`Person`类中选择所有实例。`as p`是别名,方便后续引用。 2. **select ...

    常用的hql语句用法解析

    你可以选择返回整个对象,或者只返回对象的部分属性。例如,`select c.name from Cat as c`将返回所有猫的名字。复杂的查询可以选择多个对象或属性,或者使用聚合函数,如`select count(*) from Cat`计算猫的数量。 ...

    HQL语句函数汇总(汇集了hql语句中大部分常用的函数)

    汇集了hql语句中大部分常用的函数 ABS(n) 取绝对值数学函数 数学函数 JPAQL HQL ABS(column_name[数字类型对象属性])

    hql多表查询

    根据给定的部分内容,我们可以看到一个具体的HQL多表查询实例: ```java String hql = "select m.leaveTitle, m.leaveContent, r.xm, m.leaveDate from EipLeaveMsg m, EipRyJbxx r, SysUser u " + "where m....

    hql语句语法详解hql语句

    ### HQL语句语法详解 HQL(Hibernate Query Language)是一种面向对象的查询语言,它提供了灵活而强大的机制来查询数据库中的数据,并将其映射到Java对象上。本篇文章将根据给定的信息深入探讨HQL的基本语法结构...

    HQL查询及语法

    3. **创建Query对象**:利用Session对象的`createQuery`方法,传入HQL语句创建Query实例。 4. **设置参数**:如果HQL语句中包含参数,需调用Query对象的`setXxx`方法为其赋值。 5. **执行查询并处理结果**:最后...

    学习HQL语句

    投影函数是 HQL 中的一个基本概念,它返回查询结果中的对象或对象的属性。使用 from 和 select 子句可以完成投影操作。from 子句返回指定的类的所有实例,而 select 子句可以选择对象的某些属性。 例如,from Order...

    hibernate 中HQL语句查询学习笔记

    ### Hibernate中HQL语句查询学习笔记 #### HQL基础 **HQL**(Hibernate Query Language)是Hibernate框架推荐使用的查询语言,它提供了一种面向对象的方式来查询数据库,支持多种复杂的查询操作,如继承、多态及...

    HQL语句详解Select/update/deletefromwhere...

    需要注意的是,在Hibernate中查询时,如果实体之间存在继承关系(如`Employee`类继承自`HourlyEmployee`和`SalariedEmployee`),则可以通过类似`"from Employee"`这样的HQL语句来查询基类`Employee`的所有子类实例...

    常用的HQL语句下载

    更新操作允许您修改数据库中的对象属性。在示例中,第4行的HQL语句`update PhUser set realName=?`用于更新`PhUser`表中所有记录的`realName`字段。第5行的`setString(0, "小李想")`将`?`替换为字符串"小李想",...

    hql基础语句

    HQL(Hibernate Query Language)是Hibernate框架中用于操作对象关系映射(ORM)的查询语言,它是SQL的面向对象版本,使得开发者可以更方便地在Java应用中进行数据库查询。本教程将深入讲解HQL的基础语句,包括ID...

    hql语句经典教程

    【HQL语句经典教程】 Hibernate Query Language(HQL)是Hibernate框架提供的面向对象的查询语言,它在外观上类似于SQL,但具有显著的面向对象特性,如支持继承、多态和关联。本教程将深入讲解HQL的基本概念、用法...

    hql语句 使用大全

    当只需要查询部分字段时,可以通过HQL指定这些字段: ```java String hql = "select u.name from com.mypack.User4 u"; Query query = session.createQuery(hql); List names = query.list(); ``` 遍历获取到的名字...

    hibernate的hql语句

    【hibernate的HQL语句】是Hibernate框架中用于操作数据库的重要组成部分,它是一种面向对象的查询语言,类似于SQL,但更加强调对象的概念。HQL能够处理复杂的对象关系,如继承、多态和关联,使得在进行SSH(Spring、...

Global site tag (gtag.js) - Google Analytics