org.hibernate.Exception

一、org.hibernate.ObjectNotFoundException: No row with the given identifier exists: 數據庫

    緣由多是POJO映射文件中的字段和數據庫裏表的字段不匹配(不一致)。另外還有一種可能就是表A與表B之間存在關聯關係,而且從表A中經過外鍵查詢表B當中的符合條件的記錄時,在表B找不到相應的記錄,但這種關聯關係還繼續維持着!極可能是由於設置級聯操做。 又或者是在刪除表A的記錄時,你並無同時刪除與之關聯表B中的記錄!!! session

二、org.hibernate.PropertyAccessException: exception setting property value: ide

    主要是數據庫中number類型的字段爲空致使的錯誤。其實挺好理解的當HIBERNATE獲取到空時返回NULL,可是若是 你配置的映射文件中type 是long或者其餘基本數據類型時,就會出現錯誤。解決的方法有2種 spa

 第一:設定數據庫,若是是number類型或者其餘映射後是基本數據的類型時,爲其設定默認值。 hibernate

 第二:在POJO類中的set器 傳入基本數據類型的封裝類,而後進行判斷,若是是NULL就賦給默認值。 對象

三、org.hibernate.LazyInitializationException: could not initialize proxy - no Session: 內存

    這是一個lazy使用後的Exception,使用遲時加載,在session(hibernate裏的session),關閉後使用該對象的未加載變量,也就是說session已經關閉,沒有保存到內存中,而後你使用了,致使該異常。解決方法: it

緣由:<may-to-one>or<one-to-may>的lazy屬性默認爲:lazy = "proxy"
解決:<many-to-one>   & <set> 中設置 lazy="false" 
io

相關文章
相關標籤/搜索