產生此問題的原因:
有兩張表,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.