解决spring hibernate注解事务没有提交,数据保存不到数据库:
我用了spring mvc 而且全注解,使用注解事务。我找了一个星期的解决方法,相信你也找了很久了。
我想你也值到原因就是事务没有起作用。
最后找到原因就是
springMvc和spring的contex不是一个而是父子容器关系。
我之前就值在spring-mvc.xml中写了一个去扫描注解 <context:component-scan base-package="controller,serviceImpl,daoImpl"></context:component-scan>
但spring并不知道你添加了@Transactional。注解没生效。所以你的事务没提交。所以保存不到数据库,也不报错。
我想spring context,就是父容器,而spring mvc才是子容器,所以controller能注入调用父容器中的bean.
解决方法
就是spring-mvc.xml中 配置
<context:component-scan base-package="controller"></context:component-scan>
applicationContext.xml中配置
<!-- transaction --> <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> <property name="dataSource" ref="dataSource" /> <property name="sessionFactory" ref="sessionFactory" /> </bean> <tx:annotation-driven transaction-manager="transactionManager" /> <context:component-scan base-package="serviceImpl,daoImpl"></context:component-scan>