查看你的日志,我可以立即得知你的交易设置设置有误。那是因为TransactionInterceptor
堆栈跟踪中没有调用。
在TransactionInterceptor
当你的web控制器调用实际的服务方法是通过你的Spring服务代理调用。
org.springframework.orm.hibernate4.HibernateTransactionManager
不要重写@Transactional
方法,而应使用模板模式。
尝试JPATransactionManager
改用,以便你可以EntityManager
用@PersistenceContext
注解注入电流。这比调用sessionFactory.getCurrentSession()
每种DAO方法要优雅得多。