欢迎来到小米的博客
希望能和您交流Java编程的知识和见解
BlogJava
首页
新随笔
联系
聚合
管理
随笔-57 评论-169 文章-17 trackbacks-0
用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方法将导致插入新的记录,而不是更新记录。
posted on 2005-06-15 16:33
小米
阅读(693)
评论(0)
编辑
收藏
所属分类:
Hibernate
新闻频道
新用户注册
刷新评论列表
标题
姓名
主页
验证码
*
内容(请不要发表任何与政治相关的内容)
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
相关链接:
网站导航:
博客园
BlogJava
博客生活
IT博客网
C++博客
PHP博客
博客园社区
管理博客
教师博客
天文博客
汽车博客
足球博客
股票博客
电子博客
管理
相关文章:
《深入浅出Hibernate》读书笔记(9)——Session管理
《深入浅出Hibernate》读书笔记(8)——Hibernate分页
《深入浅出Hibernate》读书笔记(7)——回调与拦截机制
《深入浅出Hibernate》读书笔记(6)——集合类型和结果集排序
《深入浅出Hibernate》读书笔记(5)——持久层操作
《深入浅出Hibernate》读书笔记(4)——事务管理
《深入浅出Hibernate》读书笔记(3)——数据缓存
《深入浅出Hibernate》读书笔记(2)——实体对象识别
《深入浅出Hibernate》读书笔记(1)——实体对象生命周期
用HQL获取部分的实体对象属性
小米,生活在深圳,专注于Java,主要从事数据库和网页编程。现在在学习着Hibernate和Spring。喜欢游戏、音乐和台球。联系方式:georgehill@21cn.com
<
2005年6月
>
日
一
二
三
四
五
六
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(21)
给我留言
查看公开留言
查看私人留言
随笔分类
Hibernate(15)
Java(17)
Spring(1)
Struts(5)
其它(5)
数据库(2)
生活随笔(12)
随笔档案
2006年4月 (1)
2006年3月 (1)
2005年8月 (1)
2005年7月 (11)
2005年6月 (13)
2005年5月 (30)
文章分类
Eclipse(1)
Java(8)
其它(8)
文章档案
2005年7月 (1)
2005年6月 (13)
2005年5月 (3)
我的朋友们
emu的博客
Java BY
我的链接
Java Research
SUN Java技术中文社区
拯救程序员王俊
搜索
积分与排名
积分 - 93348
排名 - 79
最新评论
1. re: 我的网页附加码实现
hgjhg
--hjhgj
2. re: 《深入浅出Hibernate》读书笔记(2)——实体对象识别[未登录]
详细点就更好了
--moonandsun
3. re: 《深入浅出Hibernate》读书笔记(1)——实体对象生命周期[未登录]
哈哈,不错哦
--moonandsun
4. re: BMP文件格式
thank u very much
--spiet
5. re: 《深入浅出Hibernate》读书笔记(1)——实体对象生命周期[未登录]
非常感谢,正在学习
--小马
阅读排行榜
1. 用java.util.Timer定时执行任务(8058)
2. 《深入浅出Hibernate》读书笔记(3)——数据缓存(4673)
3. 《深入浅出Hibernate》读书笔记(2)——实体对象识别(4458)
4. 《深入浅出Hibernate》读书笔记(5)——持久层操作(4091)
5. 《深入浅出Hibernate》读书笔记(4)——事务管理(4068)
评论排行榜
1. 如何在Struts中实现分页显示数据(2)(23)
2. 献出一份爱心 共同援助重病程序员王俊(22)
3. Struts的国际化完整解决方案(11)
4. 2005年6月27日,一个值得纪念的日子(9)
5. 《深入浅出Hibernate》读书笔记(1)——实体对象生命周期(8)