作者:
liuwei1981
鏈接:
http://liuwei1981.javaeye.com/blog/225492
發表時間: 2008年08月07日
聲明:本文系JavaEye網站發布的原創博客文章,未經作者書面許可,嚴禁任何網站轉載本文,否則必將追究法律責任!
最近做了一個網站,在運行一段時間出現內存耗盡,導致服務器宕機,具體問題是:對于一個News新聞對象,在新聞列表頁面,我們只要得到其主鍵、標題、發布日期和瀏覽次數幾個屬性,原來的代碼直接使用這樣的語句:
獲取了新聞對象列表,取出了新聞對象的全部屬性,但實際上并不需要其內容和其他的屬性,因為內容都是比較大的,所以會浪費不少內存。
我使用的是hibernate3.2,hql語句查詢出來的都應該是對象的。
把hql改寫成這樣——
select id,title,pubDate,num from News where……"
來實現,但是,這樣查詢出來的是一個對象數組,需要新建一個News對象,然后把屬性一一賦值進入,太麻煩了。

google了以下(懶得看文檔了

),發現可以通過如下方法解決:
1.首先在News實體里面加一個構造函數,把要查詢出來的字段當參數傳進去
public News(intid,String title,String pubDate,int num){
}
2.然后改寫
hql="select new News(id,title,pubdate,num) from Document where……"
這樣,查詢出來的就是News對象,而且只有主鍵、標題、發布日期和瀏覽次數幾個屬性,其他的為Null。
本文的討論也很精彩,瀏覽討論>>
JavaEye推薦
文章來源:
http://liuwei1981.javaeye.com/blog/225492