作者kevindd (gg)
看板java
标题[问题] hibernate的新手问题
时间Mon Dec 17 21:32:55 2012
最近在用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