修改方法或问题有三个:
1:配置web.xml,改为自动AUTO
<filter>
<filter-name>OpenSessionInViewFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
<init-param>
<param-name>flushMode</param-name>
<param-value>AUTO</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>OpenSessionInViewFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
2:修改applicationcontext.xml中的配置只读为false
<!-- 事务的配置 -->
<!-- sessionFactory 为自己配置 sessionFactory 的 bean-->
<bean id="txManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<aop:config>
<!-- execution(public * *.*.*..*.*(..)) 为自己项目中操作数据库中的方法 -->
<aop:pointcut id="**" expression="execution(public * *.*.*..*.*(..))" />
<aop:advisor pointcut-ref="**"
advice-ref="txAdvice" />
</aop:config>
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<!-- name 为 方法名 -->
<tx:method name="**" read-only="true" />
<tx:method name="**" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice>
3:因为没有在xxxserviceImp实现类前加入@Transactional事务注解导致,加上即可(找了半天终于解决)