Hibernate更新出錯的解決
今天在項目里遇到這樣一個問題,使用Hibernate進行修改操作saveOrUpdate()或者是update()時出了這樣一個錯誤,即Hibernate更新出錯。根據異常信息的字面意思,大致意思是說, 在一個session對象中同時存在著重復的相同標識的卻是不同的對象。
我遇到的情況是這樣的,客戶端進行插入操作,這個時候所插入的這個對象緩存在session中,而用戶在插入后又對同一個對象,進行修改操作,那么這個時候,同樣標識的一個對象又發(fā)送到服務端,那么一個session中就存在了兩個標識相同的對象,而對象中的內容卻不一樣,所以Hibernate會報這個錯,同樣是Hibernate更新出錯。那么針對于這種Hibernate更新出錯,該如何解決呢?
應該有許多種方法,這里我用了session.clear()在每次更新操作之前,先把session清空掉。代碼如下:
- public int saveOrUpdate(String classPath, Object obj) {
- try {
- getSession().saveOrUpdate(classPath, obj);
- //每次操作之后清空session
- getSession().flush();
- getSession().clear();
- } catch (RuntimeException re) {
- re.printStackTrace();
- }
- }
這只是對我所遇到的Hibernate更新出錯問題的解決辦法之一,如果哪里說的不正確希望大家批評指正,互相學習。
【編輯推薦】