我了解在此之前已经询问过类似问题,但找不到解决方案。基本上,我试图在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