Hibernate属性查询简单讲述

开发 后端
这里介绍Hibernate属性查询:使用HQL的时候并不是把 hbm.xml 里面的所有属性取出来,只取出有用的属性便可以了。

本文向大家介绍Hibernate属性查询,可能好多人还不了解Hibernate属性查询,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西。

今天说一下Hibernate属性查询:使用HQL的时候并不是把 hbm.xml 里面的所有属性取出来,只取出有用的属性便可以了,举个例子:

  1. List list =session.createQuery
    ("select user.name,user.age from TUSER user").list();  
  2. Iterator it = list.iterator();  
  3. while(it.hasNext())  
  4. ...{  
  5. Object[] results = (Object[])it.next();  
  6. System.out.println(results[0]);  
  7. System.out.println(results[1]);  

如果觉得返回数组的方式不够符合面向对象的风格,也可以使用构造对象实例的方法对数组进行封装:

  1. List list = this.session.createQuery
    (" select new TUser(user.name,user.age) from TUser as user").list();  
  2. Iterator if = list.iterator();  
  3. while(it.hasNext())  
  4. ...{  
  5. TUser user = (TUser)it.next();  
  6. System.out.println(user.getName());  

着爱与那个就比较形象化一些,但是有一点要注意的是这个查询结果的TUser对象仅仅是一普通的 java 对象,进用于对查询结果的封装,除了在构造是赋予的属性值外,其他属性均为未赋值状态,这就意味着,我们无法通过 Session 对此对象进行更新,如果企图对 user 对象更新将导致向数据库插入一条新的记录,而不是更新原有记录:

  1. while(it.hasNext())  
  2. ...{  
  3.  TUser user = (TUser)it.next();  
  4. user.setName("test");  
  5. session.saveOrUpdate(user);  
  6. //这里将导致一次 insert 操作,而非 update  

也可以使用像 SQL 那样的统计函数,比如:

  1. selet count(*),min(user.age) from TUser as user  
  2. select upper(user.name) from TUser as user  
  3. select distinct user.name from TUser as user 

以上介绍Hibernate属性查询。

【编辑推荐】

  1. 简单描述Hibernate单元测试
  2. 概括Hibernate多表关联查询
  3. 浅谈Hibernate Session Factory
  4. 浅析Hibernate加载配置文件
  5. 深入剖析Hibernate核心接口
责任编辑:佚名 来源: 博客园
相关推荐

2009-09-25 10:00:47

Hibernate映射

2009-09-28 10:14:08

Hibernate基础

2009-09-24 10:06:42

Hibernate实例

2009-09-23 13:33:51

Hibernate属性

2009-09-27 16:51:40

Hibernate U

2009-09-24 10:40:19

Hibernate核心

2009-09-25 13:51:13

Hibernate S

2009-09-25 12:59:52

Hibernate映射

2009-09-25 15:03:21

Hibernate绑定

2009-09-27 13:25:22

2009-10-10 09:57:58

使用RHEL合法

2009-09-29 17:00:08

Hibernate c

2009-10-16 13:26:53

VB.NET Exce

2009-12-18 15:28:19

Linux内核

2009-10-14 11:15:06

VB.NET Grou

2012-02-03 10:21:47

HibernateJava

2009-09-22 09:00:35

Hibernate A

2009-09-28 15:38:12

Hibernate P

2009-09-24 09:52:20

Spring Hibe

2009-09-29 14:03:14

Hibernate数据
点赞
收藏

51CTO技术栈公众号