Bonjour,
Je viens d'arriver sur un projet qui utilise Hibernate 3.0.
Dans le code je vois à plusieurs reprise l'utilisation de requêtes SQL native
via :
seulement les lignes suivantes dans le code sont commentées :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Connection con = getHibernateTemplate().getSessionFactory().getCurrentSession().connection() Statement st = con.createStatement();
Du coup, les ressources ne sont jamais libérées.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 st.close(); con.close();
Je pense que je dois fermer les statements et les resultsets.
Par contre je me pose la question pour la connexion.
Comment libéré proprement cette ressource :
con.close()
ou
getHibernateTemplate().getSessionFactory().getCurrentSession().close()
(ferme la session donc je ne pense pas que ce soit bon)
ou
getHibernateTemplate().getSessionFactory().getCurrentSession().disconnect()
ou autre ...
??
Cette connexion ayant été récupérée de la session hibernate, comment bien la fermée ... afin que cette ressources soit correctement restitué au pool de connexion ...
Dans la doc hibernate (
https://www.hibernate.org/hib_docs/v...nnection%28%29
), on parle de deux cas, soit on ne doit pas la fermer , soit on doit si : "If the session is using aggressive collection release". Je ne comprend pas cette phrase.
Merci d'avance pour votre aide.
Loïc
Partager