Blog de David Masclet - Mot-clé - spring - Commentaires2020-02-11T15:05:04+00:00urn:md5:bd7c47a89c3b735a7167e4bd4cde9285DotclearGérer les sessions Hibernate sans transaction - davidurn:md5:75f987ba42e6a60b4051b927f3eab5e42010-11-17T20:20:47+01:002010-11-17T20:22:39+01:00david<p>Bonjour,</p>
<p>pas besoin de redefinir hibernateTemplate, dans spring, ni
current_session_context_class (le but etant de ne rien changer). par contre
laisser le tx manager.meme s'il ne sert pas il est necessaire</p>
<p>il suffit juste que vos dao etendent NonTransationnalHibernateDaoSupport. ca
doit etre le seul changement. c'est pour cela que vous avez le message
"configuration does not allow creation of non-transactional one here."</p>
<p>dans le cas Spring=><br />
sessionfactory.getCurrentSession=>currentSessionContext.currentSession()=>SpringSessionContext=>SessionFactoryUtils.doGetSession=>TransactionSynchronizationManager</p>
<p>si hibernate.current_session_context_class=thread, SpringSessionContext
n'est pas utilisé mais ThreadLocalSessionContext, regarder les source vous
aidera sans doute à voir plus clair</p>
DavidGérer les sessions Hibernate sans transaction - nairbeauurn:md5:e36434e781301371fd83079764f022782010-11-16T00:07:10+01:002010-11-16T00:07:10+01:00nairbeau<p>Bonjour David, j'ai essayé de mettre en place votre gestion mais je n'y
arrive pas.<br />
Je me retrouve avec cette erreur :<br />
Exception in thread "main" java.lang.IllegalStateException: No Hibernate
Session bound to thread, and configuration does not allow creation of
non-transactional one here.<br />
....<br />
....<br />
can not close session, session is not in thread</p>
<p>Pouvez-vous fournir le fichier spring svp cela pourrait m'aider?<br />
Moi j'ai cela :</p>
<p><bean id="hibernateTemplate"
class="org.springframework.orm.hibernate3.NotTransactionalHibernateTemplate"><br />
<constructor-arg index="0" ref="sessionFactory" /><br />
</bean></p>
<p><!-- Hibernate Transaction Manager Definition --><br />
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager"><br />
<property name="sessionFactory"><br />
<ref local="sessionFactory" /><br />
</property><br />
</bean><br />
<!-- <tx:annotation-driven transaction-manager="transactionManager"
/>--></p>
<p><!-- Déclaration du Dao Parent, dont héritent tous les autres DAOs
--><br />
<bean id="IDataAccessObject" abstract="true"
class="fr.coursescompare.framework.persistance.DataAccessObject"><br />
<property name="hibernateTemplate" ref="hibernateTemplate" /><br />
</bean></p>
<p>avec <prop key="current_session_context_class">thread</prop>
dans la sessionFactory.</p>
<p>MERCI d'avances pour votre aide.</p>Gérer les sessions Hibernate sans transaction - toupilurn:md5:672a0b277477bd7c0ea68cfdfb172fb42010-10-11T10:50:44+02:002010-10-11T09:50:44+02:00toupil<p>J'ai développé mon site web en java/j2ee et hibernate pour la
persistance.</p>
<p>j'ai effectivement de gros problèmes avec cela : une annonce sur mon site
web est lié à un compte, le profil du compte, à une catégorie, des évaluations,
des zones d'interverventions, etc....<br />
pour ne charger que ce qui m'intéresse, j'ai pour le moment des méthodes ad hoc
mais cela n'est vraiment pas simple comme tu le dis très justement !</p>
<p>j'ai lu ton article en diagonal (jsuis au boulot :p) mais je vais essayer ta
solution très rapidement et faire un feedback ici :)</p>
<p>à bientôt et encore merci !!</p>