所以即時得到一些特定實體的情況下,通過ID加載由ID多個實體有效地在Hibernate 4
for(Integer songId:songGroup.getSongIds())
{
session = HibernateUtil.getSession();
Song song = (Song) session.get(Song.class,id);
processSong(song);
}
這會爲每個ID的SQL查詢,所以內容時發生,我認爲我應該做的這在一個,但我找不到一種方法來獲得多個實體在一個調用中除了通過運行查詢。所以我寫了一個查詢
return (List) session.createCriteria(Song.class)
.add(Restrictions.in("id",ids)).list();
,但如果我啓用2級緩存並不意味着我的老方法將能夠從二級高速緩存返回的對象(如果他們已經被請求過),但我查詢將始終轉到數據庫。
這樣做的正確方法是什麼?
你有沒有想過辦法做到這一點? – FGreg 2012-10-24 19:36:56