Hibernate3学习笔记(9)—— HQL实现查询对象部分属性

转载 2015年07月09日 19:09:00

用HQL获取部分的实体对象属性
在使用HQL查询中,有时并不需要获取完整的一个实体对象,例如一个实体对象User有三个属性:account, password和email,如果我们只需要获取account和email属性,那么有两种方法可以选择。
1. 用普通的”select user.account, user.email from User as user”,程序片断如下:

    List list = session.createQuery("select user.account, user.email from User as user").list();
    Iterator it = list.iterator();
    while (it.hasNext()) {
      Object[] values = (Object[]) it.next();
      System.out.println(values[0] + " " + values[1]);
    }

这时调用Query类的list方法返回的将是一个每个元素都是一个Object数组的List。如果只获取一个属性,那么返回的List中的每个元素都是String实例。

2.在HQL中用new操作符生成实体对象,例如:”select new User(user.account, user.email) from User as user”,程序片断如下:

 List list = session.createQuery("select new User(user.account, user.email) from User as user").list();
    Iterator it = list.iterator();
    while (it.hasNext()) {
      User user = (User) it.next();
      System.out.println(user.getAccount() + " " + user.getEmail());
    }

这时list方法返回的List中的每一个元素都是User实体对象。这里有三点需要注意的:
a.在HQL语句中需要使用as操作符指定User的别名,并且需要在构造函数的属性前面加上别名;
b.HQL语句中的构造函数在User类中必须要有相应的构造函数;
c.生成的实体对象是VO对象,如果对这些对象调用Session的saveOrUpdate方法将导致插入新的记录,而不是更新记录。

hql查询对象的全部属性和部分属性的区别

hql在查询对象的全部属性和部分属性时,在遍历结果集需要使用不同的方式: ①查询对象的全部属性 以查询学生的属性为例 ListStudent> list = session.createQuery("...
  • lewky_liu
  • lewky_liu
  • 2017年07月19日 23:02
  • 379

Hibernate查询对象所有字段,单个字段 ,几个字段取值的问题

在编程中需要利用hibernate查询出来的list,中某个字段的具体值,由于是查询多表得到的结果集,没有具体的泛型,在网上查得此文,特摘抄与大家分享,也方便后续查看 原文链接地址:http://w...
  • u012550080
  • u012550080
  • 2016年03月29日 14:45
  • 9885

HQL语句--from(检索对象)

from字句:HQL语句最简形式。from指定了HQL语句查询的主体–持久化类及其属性。from子句中持久化类的引用: 1、不需要引入持久化类的全限定名,直接引入类名即可。eg:from Selle...
  • syf1970
  • syf1970
  • 2016年09月01日 10:01
  • 360

【hibernate】——hql简单属性+实体对象查询

最近一直在研究hibernate,真是觉得越深入乐趣越多,由衷佩服hibernate的开发者,真正的体验到什么时灵活自如!真的很喜欢!     本文小编主要讲解hibernate中原生sql在查询简单...
  • jiadajing267
  • jiadajing267
  • 2017年06月05日 21:34
  • 583

Hibernate3学习笔记(9)—— HQL实现查询对象部分属性

用HQL获取部分的实体对象属性 在使用HQL查询中,有时并不需要获取完整的一个实体对象,例如一个实体对象User有三个属性:account, password和email,如果我们只需要...
  • xxxknight
  • xxxknight
  • 2015年07月09日 19:09
  • 1902

hql语言处理获取对象部分信息

最近做了一个网站,在运行一段时间出现内存耗尽,导致服务器宕机,具体问题是:对于一个News新闻对象,在新闻列表页面,我们只要得到其主键、标题、发布日期和浏览次数几个属性,原来的代码直接使用这样的语句:...
  • hanjiancanxue_liu
  • hanjiancanxue_liu
  • 2013年07月24日 09:28
  • 784

Hibernate hql 查询指定字段并获取结果集

Hibernate hql 查询指定字段并获取结果集 在hibernate中,用hql语句查询实体类,采用list方法的返回结果为一个List,该List中封装的对象分为以下三种情况: 1.查...
  • zhbitxhd
  • zhbitxhd
  • 2013年05月21日 21:16
  • 35973

SSH:如何让Hibernate的HQL只返回部分属性的对象(POJO)集合?

1、SSH的版本 Struts2版本:2.3.16.1 Spring版本:3.2.5.RELEASEHibernate版本:4.2.0.Final...
  • payne1010
  • payne1010
  • 2014年06月03日 18:00
  • 1218

Hibernate3学习笔记(4)——Hibernate查询技术之HQL语句

1、session中的get( )和load( )方法来查询对象。但其查询功能有限。 private void testGet(){ //1.初始化,读取配置文件hibernate.c...
  • xxxknight
  • xxxknight
  • 2015年06月14日 15:18
  • 1580

hql中关于一对多,根据数组里面某个对象的某个属性查询的方法总结。

今天在工作中遇到了一个棘手的问题, 问题描述如下: A类中需要关联List,即一对多关系,现在我需要根据B类中的一个属性,查询A类。 解决方法如下: String hql = "sel...
  • z479403374
  • z479403374
  • 2016年06月29日 10:53
  • 340
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Hibernate3学习笔记(9)—— HQL实现查询对象部分属性
举报原因:
原因补充:

(最多只允许输入30个字)