我瞭解在此之前已經詢問過類似問題,但找不到解決方案。基本上,我試圖在Spring中通過Hibernate使用JPA,但數據是而不是由於某種原因被持久化。在spring事務上調試時沒有顯示任何內容 - EntityManager打開和關閉,但沒有任何事情顯示出事務管理器的問題...我相信我錯過了一些大事,任何幫助表示讚賞!請參閱以下內容瞭解更多詳情。Spring + JPA @Transactional沒有提交
TIA
奧利弗
基本佈局如下:類FooDaoJPA
的保存功能調出entityManager.persist(object)
堅持的對象。
類通過實現服務接口:
@Transactional(rollbackFor = DataAccessException.class,
readOnly = false, timeout = 30,
propagation = Propagation.SUPPORTS,
isolation = Isolation.DEFAULT)
public void saveFoo(Foo foo) throws DataAccessException {
fooDao.save(foo);
}
注意到fooDao
由Spring IoC來注入
最後控制器注入了FooService
並呼籲saveFoo()
留存數據。
JPA配置
<!-- JPA Entity Manager Factory -->
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
p:dataSource-ref="feDataSource"/>
<!-- Transaction Config -->
<bean id="transactionManager"
class="org.springframework.orm.jpa.JpaTransactionManager"
p:entityManagerFactory-ref="entityManagerFactory"/>
<tx:annotation-driven mode="aspectj"
transaction-manager="transactionManager"/>
刪除rollbackFor = DataAccessException.class和帶有try catch的surround dao調用以進行調試 – blob 2011-03-05 14:09:57