昨天做项目时,写了个方法,程序突然报了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  

 呵呵,代码规范命名