1. 用普通的"select user.account, user.email from User as user",程序片斷如下:








這時(shí)調(diào)用Query類的list方法返回的將是一個(gè)每個(gè)元素都是一個(gè)Object數(shù)組的List。如果只獲取一個(gè)屬性,那么返回的List中的每個(gè)元素都是String實(shí)例。
2.在HQL中用new操作符生成實(shí)體對(duì)象,例如:"select new User(user.account, user.email) from User as user",程序片斷如下:








這時(shí)list方法返回的List中的每一個(gè)元素都是User實(shí)體對(duì)象。這里有三點(diǎn)需要注意的:
a.在HQL語句中需要使用as操作符指定User的別名,并且需要在構(gòu)造函數(shù)的屬性前面加上別名;
b.HQL語句中的構(gòu)造函數(shù)在User類中必須要有相應(yīng)的構(gòu)造函數(shù);
c.生成的實(shí)體對(duì)象是VO對(duì)象,如果對(duì)這些對(duì)象調(diào)用Session的saveOrUpdate方法將導(dǎo)致插入新的記錄,而不是更新記錄。