在做Hibernate持久化操作的時(shí)候,Hibernate報(bào)出could?not synchronize database state with session的錯(cuò)誤,引起此錯(cuò)誤的原因眾多
但是緊接著下面報(bào)出DB2的錯(cuò)誤STATE: 23502,在網(wǎng)上查找,此錯(cuò)誤是因?yàn)橄驍?shù)據(jù)庫的非空字段插入空值引起的,但是Hibernate沒有報(bào)錯(cuò)呀,仔細(xì)檢查了Hibernate映射文件,沒有發(fā)現(xiàn)有not-null屬性,用斷點(diǎn)跟蹤,也沒有發(fā)現(xiàn)對象有空值出現(xiàn)。
于是,再次來到數(shù)據(jù)庫查看,突然發(fā)現(xiàn)數(shù)據(jù)庫怎么多出一個(gè)字段??
用映射文件對比數(shù)據(jù)庫,果然,數(shù)據(jù)庫多出一個(gè)字段,而且是非空,由此看來,問題應(yīng)該就出在這里了,手動(dòng)映射字段,再次做持久化操作,一切正常!
由此可見,Hibernate捕獲了底層數(shù)據(jù)庫一場,重新拋出一個(gè)Hibernate異常,但是信息不是很完整,還需要根據(jù)數(shù)據(jù)庫提示來進(jìn)行操作
吃一塹長一智!
posted on 2007-03-28 12:02
Toez 閱讀(4403)
評論(0) 編輯 收藏 所屬分類:
IBM Software