抛出一下异常:
org.springframework.dao.InvalidDataAccessApiUsageException:
Write operations are not allowed in read-only mode (FlushMode.NEVER) turn your Session into FlushMode.AUTO or remove 'readOnly' marker from transaction definition;
出现这个异常的原因可能有几个,可以在网上寻找方法尝试。
基于我的解决方式是在applicationContext.xml中设置事务管理:
<bean id="txManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<tx:annotation-driven transaction-manager="txManager"/>
并在相应的方法上配置注解:@Transactional
原因是我在spring 和hibernate整合的部分使用HibernateTemplate,其封装了sessionFactory ,其中session的获得是通过getCurrentSession()来获取,使用此方法需要和事务相关联。