SSH整合报错:Write operations are not allowed in read-only mode (FlushMode.MANUAL)

初学SSH,开发示例发现报错:Write operations are not allowed in read-only mode (FlushMode.MANUAL),看报错信息大概知道是HibernateTemplate.save保存数据时无写的权限,在网上查了很多,试了几个方法都得不通,最终发现,需要同时修改ApplicationContext.xml和web.xml两个文件,问题解决。

web.xml增加以下配置:

<filter>
	         <filter-name>OpenSessionInViewFilter</filter-name>
	         <filter-class>org.springframework.orm.hibernate5.support.OpenSessionInViewFilter</filter-class>
	         <init-param>
	                   <param-name>sessionFactoryBeanName</param-name>
	                   <param-value>sessionFactory</param-value>
	         </init-param>
	         <init-param>
	                   <param-name>singleSession</param-name>
	                   <param-value>true</param-value>
	         </init-param>
	         <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>

ApplicationContext.xml增加以下配置:

<!-- 配置Spring的Hibernate模板 -->
	<bean id="hibernateTemplate" class="org.springframework.orm.hibernate5.HibernateTemplate">
		<property name="sessionFactory" ref="sessionFactory"></property>
	</bean>
	<!-- 配置Spring事务管理器 -->
	<bean id="txManager"
		class="org.springframework.orm.hibernate5.HibernateTransactionManager">
		<property name="sessionFactory" ref="sessionFactory"></property>
	</bean>
	<!-- 配置事务拦截器 -->
	<bean id="txInterceptor"
		class="org.springframework.transaction.interceptor.TransactionInterceptor">
		<property name="transactionManager">
			<ref bean="txManager" />
		</property>
		<property name="transactionAttributes">
			<props>
				<prop key="save*">PROPAGATION_REQUIRED</prop>
				<prop key="update*">PROPAGATION_REQUIRED</prop>
				<prop key="delete*">PROPAGATION_REQUIRED</prop>
				<prop key="do*">PROPAGATION_REQUIRED</prop>
				<prop key="recv*">PROPAGATION_REQUIRED</prop>
				<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
				<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
				<prop key="*">PROPAGATION_REQUIRED</prop>
			</props>
		</property>
	</bean>
	<!-- 事务代理 -->
	<bean
		class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
		<property name="interceptorNames">
			<list>
				<value>txInterceptor</value>
			</list>
		</property>
		<property name="beanNames">
			<list>
				<value>*Dao</value>
				<value>*Service</value>
			</list>
		</property>
	</bean>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值