[問題] hibernate的新手問題
最近在用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
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):