1. 程式人生 > >Write operations are not allowed in read-only mode (FlushMode.NEVER/MANUAL):

Write operations are not allowed in read-only mode (FlushMode.NEVER/MANUAL):

1、你一定使用的spring+hibernate 
2、你一定在applicationContext.xml檔案中寫了事務配置如下: 

Xml程式碼  收藏程式碼
  1.     <tx:advice id="txAdvice" transaction-manager="transactionManager">  
  2.         <tx:attributes>  
  3.             <tx:method name="save*" rollback-for="Exception" />  
  4.             <tx:method name="insert*"
     rollback-for="Exception" />  
  5. ollback-for="Exception" />  
  6.             <tx:method name="get*" read-only="true"/>  
  7.         </tx:attributes>  
  8.     </tx:advice>  

3、你一定使用了過濾器OpenSessionInViewFilter 

但是你一定沒在過濾器中加入flushMode引數。 

原因是在專案中使用Spring+Hibernate的時候,會開啟OpenSessionInViewFilter來阻止延遲載入的錯誤,但是在我們開啟OpenSessionInViewFilter這個過濾器的時候FlushMode就已經被預設設定為了MANUAL,如果FlushMode是MANUAL或NEVEL,在操作過程中 hibernate會將事務設定為readonly,所以在增加、刪除或修改操作過程中會出現如下錯誤,只要在那個filter裡面加上這段程式碼就OK了 

Xml程式碼  收藏程式碼
  1. <init-param>  
  2.     <param-name>flushMode</param-name>  
  3.     <param-value>AUTO</param-value>  
  4. </init-param>  

轉載地址:http://78425665.iteye.com/blog/1608841