[問題] hibernate的新手問題

看板java作者 (gg)時間13年前 (2012/12/17 21:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
最近在用hibernate但是有些不太懂的地方 我看文件說明要求session per request不鼓勵session per operation 但是我不太清楚session per request的定義 舉例來說 我建立1個session後 針對同樣db但table不同的query重複使用session 一直到沒有queryStr後才執行session.close() 這樣有符合session per request嗎? 如果queryStr有很多筆 不會有out of memory問題嗎? 程式片段如下 session = SessionFactory.getComlibSessionFactory() .openSession(); String queryStr = " select a1..."; Query query = session.createQuery(queryStr); . . . queryStr = " select b1..."; query = session.createQuery(queryStr); . . . session.close(); 還有另一個問題 下面程式片段中session2的openSession()和close()是否要放在while loop裡才合理? session1 = SessionFactory.getComlibSessionFactory() .openSession(); session2 = SessionFactory.getAcclibSessionFactory() .openSession(); String queryStr1 = " select ..."; Query query1 = session1.createQuery(queryStr1); while (query1.list().iterator().hasNext()) { Comlib lib = (Comlib)query1.list().iterator().next(); . . . String queryStr2 = " select ..."; Query query2 = session2.createQuery(queryStr2); query2.setParameter(0, lib.getName()); . . . } session2.close(); session1.close(); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 36.226.24.211
文章代碼(AID): #1Gpny9ux (java)
文章代碼(AID): #1Gpny9ux (java)