2015-10-14 1 views
2

J'utilise:5 avec Spring JTA

  • Hibernate 5.0.2
  • Spring 4.2
  • Atomikos 3.9.3

La documentation officielle indique que vous devez uniquement la jtaTransactionManager, et tout fonctionne:

<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> 
      <property name="dataSource" ref="atomikosDataSource" /> 
      <property name="jtaTransactionManager" ref="jtaTransactionManager"/> 
      [...] 
    </bean> 

Malheureusement, la session n'est pas rincée - aucune écriture n'a lieu. Quelle est la solution?

Répondre

3

Le problème est que Hibernate 5 nous oblige à définir la propriété suivante, printemps ne fait pas automatiquement encore:

<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> 
    [...] 
    <property name="hibernateProperties"> 
     <props> 
      [...] 
      <prop key="hibernate.transaction.coordinator_class">jta</prop> 
     </props> 

Ce résolu le problème pour moi.

+1

J'ai eu un problème différent. La session était en train d'être vidée mais la connexion n'a jamais été relâchée. La définition de cette propriété a résolu mon problème de fuite de connexion. –

+1

Quelle est la valeur jta dans la classe de coordinateur. Nous n'avons plus besoin de définir la classe_de_classe – swingmicro

+0

Je voulais juste donner du crédit à Jason B pour son commentaire ci-dessus et peut-être ajouter quelques mots de recherche pour aider les autres utilisateurs qui ont des problèmes de conenctions ... Nous avons eu un problème de conenctions. Nous avons effectué un travail qui a rapidement obtenu des conenctions et n'a pas libéré les connexions. Nous avons essayé plusieurs façons de configurer jusqu'à ce que je rencontre le commentaire de Jason ci-dessus et cela a résolu notre problème. – inor