InvalidDataAccessApiUsageException:Write operations are not allowed in read-only mode

原文地址:http://blog.csdn.net/znn626/article/details/7934374

org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.NEVER/MANUAL): Turn your Session into FlushMode.COMMIT/AUTO or remove 'readOnly' marker from transaction definition.

這幾天,碰到個錯誤.在網上查詢,大多是改動配置文件,而公司的項目,配置文件是不能隨便修改,況且,我這個保存功能原本是好使的,在我不知道改了什麼的情況下報錯了,原本以爲是修改的數據配置文件有問題,但是覈對了幾遍都沒問題,最後找很牛的同事看看,他恍然大悟,唉,原來這樣。。

下面是導致這個異常的我的原因:
雖然目前還是不太清楚整個流程,但是如果在交給spring 管理的情況下,有一個事務處理配置文件,xxx.xml,如下:

紅色圈上的地方定義了,你方法名的限制。如果你以這些名字,如load,find,get,list,fetch開頭命名你的方法的話,那麼你這個方法的數據操作被定義爲readonly的,在這些方法裏做數據庫的刪除,添加,修改操作是不被允許的,會報出這個異常。
於是,我改了我的方法名,之前好使是因爲我之前並不是以get開頭的,因爲修改一些東西,將方法名改成了get開頭的方法名,好吧,報錯不要緊,又知道了點東西,
修改方法名字之後,方法的添加功能就不再報錯,成功的添加進數據了。
所以我們需要做的只是修改我們的方法名即可,並不一定要去修改配置文件,修改配置文件,尤其是已經成型的工程,可能會引發其他一系列我們尚不明瞭的問題。
所以當有問題出現的時候,我們首先要做的是從我們的代碼中找問題,並修改。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章