Я новичок в спящем режиме, после прочтения api спящего режима и руководства, кажется, что сеанс должен закрываться, когда он не используется.
Вот так:
Session sess=getSession();
Transcration tx=sess.beginTranscration();
//do something using teh session
sess.save(obj);
tx.commit();
sess.close;
I не возникает вопросов при использовании в автономном приложении. Однако я не уверен при использовании в веб-приложении.
Например, у меня есть сервлет: TestServlet
для получения параметров от клиента, затем я вызываю Manager, чтобы запросить что-то в соответствии с параметрами , вот так:
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.