null id in entry (don't flush the Session after an exception occurs)
遇到這個異常實屬不小心所致,最初看到異出的錯誤信息時我誤認為是主鍵為空所致。一着急竟然把entry當成了entity理解,真是讓人笑話^_^。
其實個該異常信息是在提示我們沒有為數據中的非空字段設置值。呵呵!看,夠笨的吧。怎么會忘記為非空字段設置值呢?當然一般我們是不會犯這樣的錯。但是需要說的一點是,在數據的設計中比如SqlServer,我們為某個非空字段設置了默認值。如果我們在通過Hibernate增加一條記錄的時候我們必須顯式的通過setXxx方法為該字段(/屬性)賦值(/默認值)。因為在保存之前Hibernate會檢查該非空字段對應的實體屬性是否為空。我就是忽略了這一點,所以才會造成上面的異常。
如果不想對有默認值的非空字段進行顯式賦值的話,我們可以通過xxx.hbm.xml配置文件來實現,也就是在配置文件中給出該字段的默認值