2015-10-16 34 views
1

當使用Java註釋,我只需要聲明的bean:事務在Java中春

public HibernateTransactionManager transactionManagement 
(SessionFactory sessionFactory) { 
    HibernateTransactionManager tx = new HibernateTransactionManager 
      (sessionFactory); 
    return tx; 
} 

然後給@Transactional上述方法。 但隨着XML配置,我所做的:

<bean id="transactionManager" 
    class="org.springframework.orm.hibernate4.HibernateTransactionManager"> 
    <property name="sessionFactory" ref="sessionFactory"></property> 
</bean> 
<bean id="countryDAOImp" class="src.com.model.CountryDAOImp"> 
</bean> 
<tx:annotation-driven proxy-target-class="true" /> 

而這個錯誤發生:NoClassDefFoundError: org/hibernate/engine/transaction/spi/TransactionContext

我錯過了什麼? :D 謝謝!

+1

在您的類路徑中是否存在['hibernate-core'](http://mvnrepository.com/artifact/org.hibernate/hibernate-core)? – Tunaki

+0

我正在使用maven,我確實在pom文件中添加了hibernate-core :) – Einsamer

+0

您能向我們展示整個堆棧跟蹤嗎?如果你使用eclipse檢查這個包和類是否在maven依賴中。然後檢查它們是否在目標文件夾中...像target/$ {projectName}/WEB-INF/lib –

回答

1

我認爲這個問題與你的spring hibernate兼容性有關。

檢查您的spring依賴版本和hibernate版本的兼容性。您使用的是org.springframework.orm.hibernate4.HibernateTransactionManager。您必須使用hibernate 4.x版本的依賴關係。

試試這個組合4.1.0.Final with spring 3.1.1.RELEASE它應該工作。