關於ssh裏面的Write operations are not allowed in read-only mode (FlushMode.NEVER)

最近在整合ssh 的時候遇到了幾個問題,首先是ssh中能查詢數據但是不能保存,刪除以及更新數據,而且總是報一個錯誤,就是Write operations are not allowed in read-only mode (FlushMode.NEVER);
百度了各種結果,要不就是在spring的xml文件中將read-only設置爲false,要不就是在web.xml文件中加一個過濾器,但是統統都沒用,最後我發現在dao層的實現類裏面加這樣一句話就不會報錯了,
tmp.getSessionFactory().getCurrentSession().setFlushMode(FlushMode.AUTO);
但是我覺得這樣的話每一個實現類都得加上這麼一句話就會好麻煩,說好的減少代碼的重複使用呢?爲什麼xml中這樣的配置不起作用呢?

 <tx:method name="save*" read-only="false" propagation="REQUIRED" />

目前我還是不明白,希望有大神前來指教。

後來我以爲這樣就算完事兒了,結果發現雖然不報錯,但是數據根本沒有存進數據庫,後來百度了一下發現是少了這樣一句話

tmp.flush();

原來是因爲在項目在運行時先只是將數據保存到了緩衝區,並沒有真正的寫進數據庫,只有咋執行flush之後纔會寫入到數據庫。

發佈了39 篇原創文章 · 獲贊 20 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章