原文:org.hibernate.AssertionFailure: null id in xxx entry (don't flush the Session after an exception occurs)

網上找了很久,發現造成原因有很多種,后來終於發現了端倪 看提示是發生了異常,查看業務代碼,發現有這個邏輯:先插入記錄,如果有唯一鍵約束異常 並發造成 ,catch時查詢已存在的記錄,查詢的時候就報了此錯誤。 原因:異常后,再次查詢的時候觸發了autoFlush,先前保存失敗的記錄會再次保存,導致拋出如標題所述異常。 解決方法:數據庫是mysql,改為采用 insert ignore into語句 ...

2018-01-05 16:43 0 1351 推薦指數:

查看詳情

null id in entry (don't flush the Session after an exception occurs)

null id in entry (don't flush the Session after an exception occurs) 遇到這個異常實屬不小心所致,最初看到異出的錯誤信息時我誤認為是主鍵為空所致。一着急竟然把entry當成了entity理解,真是讓人笑話 ...

Wed Nov 05 01:32:00 CST 2014 0 2670
Hibernate session.flush() 使用

session flush在commit之前默認都會執行, 也可以手動執行,他主要做了兩件事: 1) 清理緩存。 2) 執行SQL。 flush: Session 按照緩存中對象屬性變化來同步更新數據庫。 默認情況下,Session 會在以下情況下調用 flush: 1. 直接調用 ...

Wed Jul 05 20:04:00 CST 2017 0 6277
There is no session with id XXX

系統采用 shiro + redis + spring來做的權限控制系統。 登錄時報 there is no session with XXX 跟蹤斷點發現,系統查詢session時,查不到redis中的sessionID。 但是我通過redis客戶端 ...

Tue Sep 19 00:36:00 CST 2017 1 2309
org.hibernate.exception.ConstraintViolationException

org.hibernate.exception.ConstraintViolationException 今天遇到這個錯誤,網上查了下,大多說是有必填字段沒有填,搞了很久沒搞定,最后發現不是因為這個問題,而是因為字段設置了唯一值,如果表中已存在此記錄,再插入則報此錯誤 ...

Thu Jul 12 17:27:00 CST 2012 0 6930
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM