hql语句实现查询对象部分属性
2012-03-29 09:25
309 查看
最近做了一个网站,在运行一段时间出现内存耗尽,导致服务器宕机,具体问题是:对于一个News新闻对象,在新闻列表页面,我们只要得到其主键、标题、发布日期和浏览次数几个属性,原来的代码直接使用这样的语句:
Java代码
FROM News WHERE +条件语句
获取了新闻对象列表,取出了新闻对象的全部属性,但实际上并不需要其内容和其他的属性,因为内容都是比较大的,所以会浪费不少内存。
我使用的是hibernate3.2,hql语句查询出来的都应该是对象的。
把hql改写成这样——
Java代码
select id,title,pubDate,num from News where……"
来实现,但是,这样查询出来的是一个对象数组,需要新建一个News对象,然后把属性一一赋值进入,太麻烦了。
google了以下,发现可以通过如下方法解决:
1.首先在News实体里面加一个构造函数,把要查询出来的字段当参数传进去
Java代码
public News(intid,String title,String pubDate,int num){
}
2.然后改写
Java代码
hql="select new News(id,title,pubdate,num) from Document where……"
这样,查询出来的就是News对象,而且只有主键、标题、发布日期和浏览次数几个属性,其他的为Null。
Java代码
FROM News WHERE +条件语句
FROM News WHERE +条件语句
获取了新闻对象列表,取出了新闻对象的全部属性,但实际上并不需要其内容和其他的属性,因为内容都是比较大的,所以会浪费不少内存。
我使用的是hibernate3.2,hql语句查询出来的都应该是对象的。
把hql改写成这样——
Java代码
select id,title,pubDate,num from News where……"
select id,title,pubDate,num from News where……"
来实现,但是,这样查询出来的是一个对象数组,需要新建一个News对象,然后把属性一一赋值进入,太麻烦了。
google了以下,发现可以通过如下方法解决:
1.首先在News实体里面加一个构造函数,把要查询出来的字段当参数传进去
Java代码
public News(intid,String title,String pubDate,int num){
}
public News(intid,String title,String pubDate,int num){ }
2.然后改写
Java代码
hql="select new News(id,title,pubdate,num) from Document where……"
hql="select new News(id,title,pubdate,num) from Document where……"
这样,查询出来的就是News对象,而且只有主键、标题、发布日期和浏览次数几个属性,其他的为Null。
相关文章推荐
- hql语句实现查询对象部分属性
- Hibernate3学习笔记(9)—— HQL实现查询对象部分属性
- 在hibernate3中如何利用HQL语句查询出对象中的部分数据并且返回该对象?
- hibernate HQL 语句 只查询对象里面的某些属性
- Herbinate中用hql语句查询结果返回转换为对象的方法
- SSH:如何让Hibernate的HQL只返回部分属性的对象(POJO)集合?
- 使用HQL语句方式实现多表多条件组合模糊查询
- HQL简单属性和实体对象查询
- 对sql的查询语句做成对象式,简单实现。Where部分
- Castle学习笔记----使用HQL语句实现复杂查询
- 使用json实现查询条件传回Action进行hql语句拼接查询实现在结果中查询功能在datagrid中显示查询结果
- Hql语句中使用distinct关键字查询多个字段后以对象形式返回的方法
- HQL实现单一 属性与多个属性的查询
- hibernate使用createQuery(hql)语句仅查询部分字段,应如何获得数据
- 【hibernate】——hql简单属性+实体对象查询
- 关于在Spring下 使用HQL 语句模糊查询的实现方法
- SSH框架问题——hql语句查询级联对象(即:查询出包括当前对象内部维护的对象)的方法。
- 【hibernate】——hql简单属性+实体对象查询
- hibernate的HQL查询部分属性
- Hibernate笔记:HQL查询总结(一)——简单属性查询和实体对象查询