Я новичок в спящем режиме, после чтения hibernate api и учебника, кажется, что сеанс должен закрываться, когда он не используется.
Вот так:
Session sess=getSession();
Transcration tx=sess.beginTranscration();
//do something using teh session
sess.save(obj);
tx.commit();
sess.close;
У меня нет вопросов при использовании его в отдельном приложении. Однако я не уверен при использовании в веб-приложении.
Например, у меня есть сервлет: TestServlet
для получения параметров от клиента, затем я вызываю диспетчера для запроса чего-либо в соответствии с параметрами, как это:
class TestServlet{
doGet(HttpServletRequset,httpServletResponse){
String para1=request.getParam...();
String para2=.....
new Manager().query(para1,para2);
}
}
class Manager{
public String query(String pa1,String pa2){
Session=....// get the session
//do query using para1 and 1
session.close() //Here, I wonder if I should close it.
}
}
Должен ли я закрывать сеанс в методе запроса?
Так как кто-то сказал мне, что сеанс в спящем режиме похож на соединение в jdbc. Так что открытие и закрытие так часто является правильным способом?
Кстати, требуется ли tx.commit() каждый раз?
Также проблема с потоком об использовании сеанса в сервлетах, так как я видел, что сеанс не является потокобезопасным в api.