Hibernate異常No row with the given identifier exists

原文地址:點擊打開鏈接

產生此問題的原因:

有兩張表,table1和table2.產生此問題的原因就是table1裏做了關聯<one-to-one>或者<many-to-one>來關聯table2.當hibernate查找的時候,table2裏的數據沒有與table1相匹配的,這樣就會報No row with the given identifier exists這個錯.(一句話,就是數據的問題!)

假如說,table1裏有自身的主鍵id1,還有table2的主鍵id2,這兩個字段.

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

如果hibernate是雙向關聯,那麼table1中的id2爲null值,但是table2中如果有值,就會報這個錯.這種情況目前的解決辦法就是改成單項關聯,或者把不對應的數據改對!

解決方法:

1.修改數據使關聯字段能查詢到數據

2.在<many-to-one>中設置not-found="ignore",此時如果關聯關係不存在,對應的屬性值爲Null.


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