Je me demande si nous devrions utiliser session.close()
lorsque j'utilise le regroupement de connexions c3p0 en hibernation? ou c3p0 se ferme automatiquement après un certain intervalle de temps? Ai-je besoin de simplement ouvrir la session pardoivent être fermées dans Hibernate lorsque nous utilisons le pooling de connexion c3p0?
SessionFactory factory = HibernateUtil.getSessionFactory();
Session session=factory.openSession();
Parce que dans le didacticiel suivant, il ne ferme pas la session.
Quelle est la bonne façon?
Edit:
Ce serait mon code
@SuppressWarnings("unchecked")
@Override
public JSONObject getUserDetails(int id) {
long lStartTime = new Date().getTime();
JSONObject obj = new JSONObject();
try(Session session=factory.openSession()) {
Employee emp=(Employee)session.load(Employee.class,id);
if(emp != null) {
obj.put("id", emp.getId());
obj.put("name", emp.getName());
}
long lEndTime = new Date().getTime();
log.info("[ Personal Details ]Time elapsed For Fetching :"+(lEndTime - lStartTime));
} catch (Exception e) {
// TODO: handle exception
}
}
Merci Elliott. Mais, ma question est que je devrais écrire "session.close()" explicitement dans le code? – Syed
Si vous n'utilisez pas 'try-with-resources', alors ** yes ** vous devriez * explicitement écrire' session, close() 'dans un bloc *' 'finally' *. –
Merci pour votre mise à jour. Mais qu'est-ce qui fait exactement le diff? – Syed