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语句实现查询对象部分属性

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

HQL简单属性和实体对象查询

在HQL中,关键字不区分大小写,但属性名和类名区分大小写。 1.简单属性查询 (1)单一属性查询:返回的结果集为属性列表,其类型与实体中该属性的类型一致 List students=ses...
  • yyywyr
  • yyywyr
  • 2011-08-12 09:52
  • 5095

Hibernate:命名SQL查询

Hibernate:命名SQL查询
  • VipMao
  • VipMao
  • 2016-05-26 16:49
  • 2010

【Hibernate步步为营】--hql查询之实体对象查询

实体对象查询是hql查询的基础,作为一种对象查询语言,在查询操作时和sql不同,查询字符串中的内容要使用类名和类的属性名来代替。这种查询方法相对简单,只要有SQL功底,使用hql是很简单的,但是有一些...

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

1、SSH的版本 Struts2版本:2.3.16.1 Spring版本:3.2.5.RELEASEHibernate版本:4.2.0.Final

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

1、session中的get( )和load( )方法来查询对象。但其查询功能有限。 private void testGet(){ //1.初始化,读取配置文件hibernate.c...

hibernate3学习笔记(九)|Query及HQL

示例代码如下: package com.hb3.pack_01;import java.util.Iterator;import java.util.List;import org.hibe...

Hibernate3学习笔记(5)——Hibernate查询技术之Criteria查询

Criteria查询又称为对象查询,它使用一种封装了基于字符串形式的查询语句的API来查询对象。 在使用HQL查询方式,需要定义基于字符串形式的HQL语句,虽然比JDBC代码有所进步,但仍繁琐且不方...

hibernate3学习笔记(三)|数据加载——Session.get/load

Session.load/get方法均可以根据指定的实体类和id从数据库读取记录,并返回与之对应的实体对象。其区别在于: 如果未能发现符合条件的记录,get方法返回null,而load方法会抛出...

Hibernate3学习笔记(10)——ID 标识选择器

在 Hibernate 中,每个对象需要一个标识 ID,通过这个标识 ID 建立对象与数据库中记录的对应关系。Nhibernate 提供了多种方式来建立这个 POID。基于不同的生成策略,可以选择更佳...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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