昨天做项目时,写了个方法,程序突然报了Connection is readonly. Queries leading to data modification are not allowed调了程序半天,最后才发现是自己在spring配置文件中增加了事务.把方法写成了大写开头了,但是spring配置是以小写开头
代码如下:
<bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor"> <property name="transactionManager" ref="transactionManager" /> <property name="transactionAttributes"> <props> <prop key="save*">PROPAGATION_REQUIRED</prop> <prop key="update*">PROPAGATION_REQUIRED</prop> <prop key="delete*">PROPAGATION_REQUIRED</prop> <prop key="set*">PROPAGATION_REQUIRED</prop> <prop key="change*">PROPAGATION_REQUIRED</prop> <prop key="get*">readOnly</prop> <prop key="*">readOnly</prop> </props> </property> </bean>
大家看下红色代码,这就是事务的配置, 在属性key中,我定义了get*.意思是方法名只能是以get名称开头
而我却写成了Get 了,这样就使用默认事务了<prop key="*">readOnly</prop>.所以报Connection is readonly. Queries leading to data modification are not allowed
呵呵,代码规范命名