1. 程式人生 > >hibernate query的list與iterate方法區別

hibernate query的list與iterate方法區別

list:

quert.list()方法會將從資料庫查詢到的資料庫放到一級快取和二級快取,但是不能從一級和二級快取讀取資料,但是可以從二級快取的

查詢快取讀取資料,

 

iterate:

quert.iterate()方法總會先查詢資料表的主鍵,然後根據每一個主鍵傳送對應的sql語句從資料庫讀取資料,它可以把資料放入一級和二

級快取,也可以從一級和二級快取讀取資料,但是每次讀取都會發送查詢主鍵的sql.

 

list和iterate返回的物件分析:

list()中返回的是實體物件, 而iterate()中返回的物件是代理物件.

 

list和iterate對快取的使用情況:

iterate會查詢session快取、2級快取, list只會使用查詢快取(如果查詢快取開啟的話)