Hibernate報錯:org.hibernate.ObjectNotFoundException: No row with the given identifier exists 解決辦法


報錯信息:

org.hibernate.event.internal.DefaultLoadEventListener onLoad
INFO: HHH000327: Error performing load command : org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [com.weixin.db.model.Adminusers#15]

報錯分析:

Hibernate的映射文件,表A里關聯了表B的主鍵,當查詢表A時,在B表里找不到對應記錄時就會報錯,如果只是邏輯刪除不會報這種錯誤,只有當表B里測試沒有id為15的這條數據了才會報錯(已實際測試過);上面報錯信息實體類后面【#15】表示實體類對應表id=15的記錄找不到。也就是存在垃圾數據,可能是因為沒有連帶刪除。

 

解決辦法:

1. 修改配置文件加上 not-found="ignore" ”

即:

<many-to-one name="adminusers" class="com.weixin.db.model.Adminusers"
     fetch="select" lazy="false" not-found="ignore">

2. 要么就把垃圾數據從數據庫刪掉。

 

項目中遇到的問題,記錄一下。

 


免責聲明!

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



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