public class ManageConexiune implements Filter {
private FilterConfig filterConfig;
public void destroy() {}
public void init(FilterConfig fConfig) {
this.filterConfig = fConfig;
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {
Object obj = request.getAttribute("OPENED_CONNECTION");
Session ses = null;
if(obj != null) {
ses = (Session)obj;
try {
ses.close();
}
catch(HibernateException ex) {
ex.printStackTrace(); //just print the stack trace into log files
}
}
ses = HibernateSingleton.getInstance().openSession();
request.setAttribute("OPENED_CONNECTION", ses);
chain.doFilter(request, response);
}
}
Obs: Clasa HibernateSingleton pune la dispoziție două metode statice: una din ele este getInstance care returneaza un SessionFactory. Cea de a doua metodă statică nu face altceva decât să returneze sesiunea deschisă de pe request.
public class HibernateSingleton {
private static SessionFactory sessionFactory;
static
{
sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
}
public static SessionFactory getInstance()
{
return sessionFactory;
}
public static Session getRequestSession() {
return (Session)Contexts.getRequest().getAttribute("OPENED_CONNECTION");
}
}
Astfel, ori de câte ori aveți nevoie de o sesiune validă invocați HibernateSingleton.getRequestSession. Utilizând maniera deschisă aici veți evita multe erori de genul Can't open connection sau Session closed. De asemenea, veți simți o îmbunătățire a performanțelor site-ului și veți obține timpi de acces mai buni.
Mda... si unde demonstrezi ca nu mai trebuie EAGER ?
RăspundețiȘtergereCu solutia ta vei evita exceptiile generate de accesarea unei asocieri neinitializate a unui obiect in modul detached (in terminologia hibernate), dar Eager fetching este folosit pt cu totul altceva decat pt evitarea exceptiilor, si anume pentru optimizarea accesului la baza de date. Spre exemplu poti sa eviti problema celor n+1 selecturi folosind eager fetching. In loc de n+1 selecturi, vei avea doar unul. Asta inseamna eager fetching, deci nu cred ca ar fi bine sa nu mai o folosim in aplicatiile web
Vreau să-l apreciez pe Dr. WHITE pentru restaurarea căsătoriei mele cu vrajă, după 1 an de separare cu soția mea, cu ajutorul marelui jucător de vrajă Dr.
RăspundețiȘtergereWHITE soția mea se întoarce acasă și acum suntem fericiți împreună pentru totdeauna, încă o dată datorită doctorului WHITE El vindecă tot felul de boli și, de exemplu,
1 VRAIE DE IUBIRE
2 CÂȘTIGĂ EX ÎNAPOI
3 FROTUL MIEREI
4 VRAJA DE PROMOVARE
5 VRAJA DE PROTECȚIE
6 VRAIA DE AFACERI
7 VRAJA MUNCĂ BUNĂ
8 HIV SIDA
VRAJIA LOTERIEI ȘI VRAJEA CAUZEI CURȚII Contactați-l pentru ajutor prin:
WHATSAPP:
+17168691327.
E-mail: wightmagicmaster@gmail.com