spring+struts+mybatis中關於報錯org.hibernate.exception.GenericJDBCException: Connection is read-only. Queries leading to data modification are not allowed 的產生原因及解決方案


 spring.xml:文件
1
<tx:advice id="txAdvice" transaction-manager="transactionManager"> 2 <tx:attributes> 3 <tx:method name="save*" propagation="REQUIRED" read-only="false" /> 4 <tx:method name="add*" propagation="REQUIRED" read-only="false" /> 5 <tx:method name="delete*" propagation="REQUIRED" read-only="false" /> 6 <tx:method name="update*" propagation="REQUIRED" read-only="false" /> 7 <tx:method name="list*" propagation="REQUIRED" read-only="true" /> 8 <tx:method name="get*" propagation="REQUIRED" /> 9 <tx:method name="import*" propagation="REQUIRED" read-only="false" /> 10 <tx:method name="export*" propagation="REQUIRED" read-only="true" /> 11 <tx:method name="*" propagation="REQUIRED" read-only="true" /> 12 </tx:attributes> 13 </tx:advice>

分析:service層里面有參與事物的方法沒有按以上規則來命名,而以上配置文件規定了數據庫操作函數必須要以上面的字符串開頭,否則的話就按照默認的配置,對數據庫訪問的權限為read-only。

報錯原因:我的因為service層中的方法名違背了以上規則,只要將方法名改下就可以了

解決辦法:1.修改service里面方法的名字,改為符合配置文件的規則。 
                  2.當然也可以把read-only="true"去掉,(不推薦這種做法)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM