關於Hibernate執行查詢後會引發update操作的解決方法
遇到了這個問題
在網上查了各種方法
這裡收集整理了一下
產生原因:hibernate 做持久化時get 和 set 值,發現get 值不同則做同步更新到資料庫. 才會發生 查詢後又做更新操作
1、使用session.lock(object, LockMode.NONE)
(1)、session.saveOrUpdate(object)。這語句會把遊離態的PO轉為持久態的PO並提交給資料庫
(2)、session.merge(object)。這語句會把遊離態的PO轉為持久態的PO,並進行合併操作。
(3)、session.lock(object, LockMode.NONE)。這語句只會把遊離態的PO轉為持久態PO,不作其他操作。不過,PO必須是沒有修改過的,這方法挺適合做一個應用層
2、新增事務處理機制
3、給set繫結dynamic-update="false"
4、因為hibernate對持久態的物件會進行自動的比較的。get出來的持久態的物件可以用session的evict(Object object)把這個物件變成脫管的就可以了。也就是說把持久態的轉換成遊離態就好
詳細例子:
希望出現同樣問題的小夥伴少走一點彎路
相關推薦
Hibernate執行查詢後會引發update操作並報錯的解決方法
剛剛發現一個bug,就是在執行了匯出資料庫中的資料到excel表格後再去執行查詢操作會報錯,通過將 <property name="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prope
關於Hibernate執行查詢後會引發update操作的解決方法
遇到了這個問題 在網上查了各種方法 這裡收集整理了一下 產生原因:hibernate 做持久化時get 和 set 值,發現get 值不同則做同步更新到資料庫. 才會發生 查詢後又做更新操作 1、使用session.lock(object, LockMode.NONE)
idea軟體編碼已經設定好了為utf-8,但是svn中down下來的檔案格式本身不是utf-8的,此時開啟後會出現中文亂碼解決方法
我是個idea的忠實使用者,新公司的專案都是用eclipse做的,通過svn拉下程式碼後發現,註釋的內容裡,中文內容都是亂碼。問過專案負責人,說可能是GBK編碼。 但是,我通過idea的setting設定了編碼,試了5種編碼都沒用,中文內容還是亂碼。最後還是自己試出來解決方案。 詳細的原因請參考
oracel sql執行完後會加入快取, 不適合做sql 實驗的解決方法記錄
alter system set events = 'immediate trace name flush_cache'; 清除快取, 每一次執行都從物理層面讀取。 alter system flush buffer_cache;
win10更新1809版本後執行Dev-cpp, dos控制檯字元亂碼解決方法
微軟:請勿安裝windows10 1809版本,有bug會刪除個人檔案 雖然微軟非常利索的在釋出會後及時推送了新的windows10新版本,但自從推送後,諸多問題層出不窮。之前使用者曾表示1809版本windows 10的工作管理員存在CPU使用率錯誤顯示的問題。 不過,可
Fragment onActivityResult提前響應,startActivityForResult執行後立即響應onActivityResult的解決方法
找不到病根真是讓人愁白了頭; 今天寫了一個startActivityForResult,開啟一個Activity並拿到返回的結果,但是startActivityForResult剛走,onActivityResult就立即響應了,這我要這個onActivityResult有何用; 來看開啟程
Python 執行sql條件查詢語句速度很慢的解決方法
問題描述 今天寫程式碰到一個問題,程式剛開始執行的好好的,到了後面,資料庫中的檔案越來越多的時候,程式執行開始變慢,到了後來, 一條條件查詢語句,竟然要用一分鐘之久,要知道只有幾萬條資料(雖然資料內容很大) 解決方法 這個問題,困擾我好久,我之前一直在優化自
檢查頁面Session是否過期,過期執行相應操作 解決方法
how to check session is expired or not if expired then redirect to login page 在專案中,如果客戶開啟頁面時間過久容易導致頁面Session過期,再進行任何操作時都會提示“Asp.Net session
node終端執行http服務會出現亂碼的解決問題
&&1: 先看簡單的一段程式碼&&2:在這裡執行服務就會出現亂碼.下圖所示&&3:解決方法,只需要加一句res.write('<head><meta charset="utf-8"/></head&
執行緒間操作無效: 從不是建立控制元件的執行緒訪問它的三種解決方法
今天遇到這個問題,百度了下,把解決的方法總結出來。 我們在ui執行緒建立的子執行緒操作ui控制元件時,系統提示錯誤詳細資訊為: 執行緒間操作無效: 從不是建立控制元件“XXX”的執行緒訪問它。 就我知道的有三種方法,先看一下msdn的介紹: 訪問 Windows 窗
類型初始值設定項引發異常的解決方法
實例 nbsp fig str winform 引用 setting .config orm 1、檢查類中的靜態字段或屬性,確保其能夠正常的完成初始化 2、在類的構造函數中,確保其訪問的屬性或字段都已經完成初始化 3、如果是WinForm中,將訪問的窗體控件的語句寫在初始化
執行DBMS_METADATA.get_ddl報ORA-39212的解決方法
ddl api div lec connect ext rom 查看 local 環境: 數據庫:oracle 10.2.0.4 --64位 操作系統:紅旗dc 5.0 --64位以sys登陸,執行DBMS_METADATA.get_ddl得到某個表空間的元數
linux組建的軟raid md0重啟後自動變成md127的解決方法
md127 md0變成了md127 在創建完raid時,如果在/etc/下沒有生成mdadm.conf配置文件請運行:mdadm --detail --scan >> /etc/mdadm.conf此時可以:vim /etc/mdadm.conf將ARRAY 後的/dev/md/local
升級JDK9後eclipse無法啟動的解決方法
eclipse java1.9更新到Jdk9後,就出現Eclipse找不到jdk裏面類的問題(無法啟動):org.eclipse.e4.core.di.InjectionException: java.lang.NoClassDefFoundError: javax/annotation/PostCons
對於halcon與MFC或c#編程中,當寫入滾輪放縮圖像時,圖像會閃屏的解決方法
lena 清除 必須 pty temporary csdn 名稱 方法 等級 //會閃屏的代碼,更新圖像函數如下(以MFC為例)******************************************************* void CGeomLocat
ubuntu終端執行shell腳本報command not found解決方法
flow logs install post pos not-found stack work href 使用sudo執行腳本報錯:sudo: myshell.sh: command not found 原因:發生這種情況的原因是因為您正在嘗試執行的腳本需要正確的權限 解決
ESXi 6.7交換機做端口聚合Ethernet Channel後網絡不通的解決方法
.com src ping不通 流量 sha 其他 交換 esxi 6 shadow 為了實現網絡冗余,在ESXi6.7的主機端,將兩個跑業務流量的網口做Teamning: 在交換機端,對應的兩個交換機端口做端口聚合channel-group: 做完後發現ESXi主機上的虛
求多個區間合並後區間大小的巧妙解決方法【差分】
\n == 簡單 ace net src space names int 上圖一共有5個區間,分別是[0,2]、[2,4]、[8,11]、[7,11]、[15,18]。如果要求這些區間合並後區間的大小,有兩種簡單的方法。 方法一:比較每兩個區間的範圍,如果兩個
SQLServer 數據庫變成單個用戶後無法訪問問題的解決方法
master alt arch pre server tab process sele processes USE master; GO DECLARE @SQL VARCHAR(MAX); SET @SQL=‘‘ SELECT @SQL=@SQL+‘;
Crontab執行java/spark-shell/spark-submit 異常解決方法
現象: java/spark-shell/spark-submit 語句在linux shell中直接執行時沒有任何問題,但是放到crontab中就出異常,且異常一般都拋在一些基礎庫裡,讓人感覺非常莫名,比如這種: Traceback (most recent call last): &