Hibernate常見問題 No row with the given identifier exists問題的解決辦法及解決



(1)在學習Hibernate的時候遇到了這個問題“No row with the given identifier exists”在網上一搜看到非常多人也遇到過這個問題!

問題的解決辦法肯定是有多種,下面解決比較可能的原因。


(2)我說一下當時我出現錯誤的時候,是利用hibernate動態創建數據庫的。錯誤提示的信息是對象未找到而發出異常!

然后后邊的是未找到的文件路徑,可是細致檢查並沒有錯誤!可是看下邊的解釋錯誤出現的原因:SessionFactoryImpl還有SessionImple有關的

這就快非常easy想到是由於處理數據庫的原因造成的!然后在看到最后的一個錯誤 即是我項目下的TestMain.java:16 處點進去!恍然大悟 原來是我調用的函數是“刪除操作”(想把自己hu死!

) 想一下我的數據庫是動態創建的一開始肯定沒有數據 所以出現刪除失敗!

(3)通過我解決這個問題的方法。大家的問題也非常可能是操作數據庫表示出現的錯誤!

(4)試想一下! 

1.如果有兩張表,table1和table2.產生此問題的解決辦法就是table1里做了關聯table2的時候(一對一或者是 多對一).當hibernate通過table1查找的時候,table2里的數據沒有與table1相匹配的,這樣就會報No row with the given identifier exists這個錯.(一句話,就是數據的問題!)

        2.假如說,table1里有自身的主鍵id1,還有table2的主鍵id2(作為table1的外鍵),這兩個字段.

        3.假設hibenrate設置的單項關聯,即使table1中的id2為null值,table2中id2中有值,查詢都不會出錯.可是假設table1中的id2字段有值,可是這個值在table2中主鍵值里並沒有,就會報上面的錯!

        4.假設hibernate是雙向關聯,那么table1中的id2為null值,可是table2中假設有值,就會報這個錯.這樣的情況眼下的解決的方法就是改成單項關聯,或者把不正確應的數據改對!

5.假如說我推斷一下,假設遇到創建人id傳過來為空值,我推斷假設是空值,我把創建人id設為0,可是用戶表中userid是主鍵從1開始自增的,那么這樣數據就相應不上了,一查就會出這個錯了.這個錯在開發剛開始的時候常常發生,由於每一個人的模塊都是由相應的人獨立開發完畢以后再整合在一起的,每一個人寫單獨那一塊的時候往往會忽略這些,所以整合的時候這些問題往往就都一下子全冒出來了!

        6.這就是報這個錯的原因了,知道原因了就對應的改即可了!

(5)在(4)中已經列舉了幾個出現這個問題的解決辦法 可能遇到的問題的解決辦法並非這些可是根本原因是操作數據庫的時候出現錯誤!自己好好檢查數據庫的操作希望能成功。




免責聲明!

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



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