est il necassaire d'avoir une session pour chaque objet persistant??
que se passe t il si j'ouvre une session , pour un objet, puis j'appelle une méthode d'une autre classe, qui lui meme crée un objet, puis ferme sa session.
merci de votre réponse!!
est il necassaire d'avoir une session pour chaque objet persistant??
que se passe t il si j'ouvre une session , pour un objet, puis j'appelle une méthode d'une autre classe, qui lui meme crée un objet, puis ferme sa session.
merci de votre réponse!!
Non tu n'es pas obligé d'avoir une session par objet persistant, Hibernate gere très bien cela.
Par rapport à ton exemple tu dois définir le "pattern" d'utilisation de ta session (ie : session per transaction), par exemple avec des EJBs tu peux choisir:
-----> Appel EJB
Ouverture de la session + attachement des objets transient (ie détaché de la session)
ouverture de ta transaction
.....
.....
fermeture de la transaction
Fermeture de la session
<----- Fin de l'appel EJB
La gestion de ta session est intimement lié à ta transaction, ne l'oublie pas.
j'ai l'erreur suivante maintenant!!
61 org.hibernate.Session session =
com.pv.hibernate.Utils.HibernateUtil.currentSession();
62 Transaction tx = session.beginTransaction();
org.hibernate.HibernateException: Session is closed
at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:94)
at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:49)
at org.hibernate.transaction.JDBCTransactionFactory.beginTransaction(JDBCTransactionFactory.java:19)
at org.hibernate.jdbc.JDBCContext.beginTransaction(JDBCContext.java:204)
at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1014)
at com.pv.hibernate.manager.FactureManager.addFacture(FactureManager.java:62)
at com.pv.hibernate.test.TestFactureManager.main(TestFactureManager.java:24)
Partager