在做Hibernate持久化操作的时候,Hibernate报出could not synchronize database state with session的错误,引起此错误的原因众多
但是紧接着下面报出DB2的错误STATE: 23502,在网上查找,此错误是因为向数据库的非空字段插入空值引起的,但是Hibernate没有报错呀,仔细检查了Hibernate映射文件,没有发现有not-null属性,用断点跟踪,也没有发现对象有空值出现。
于是,再次来到数据库查看,突然发现数据库怎么多出一个字段??
用映射文件对比数据库,果然,数据库多出一个字段,而且是非空,由此看来,问题应该就出在这里了,手动映射字段,再次做持久化操作,一切正常!
由此可见,Hibernate捕获了底层数据库一场,重新抛出一个Hibernate异常,但是信息不是很完整,还需要根据数据库提示来进行操作
吃一堑长一智!
posted on 2007-03-28 12:02
Toez 阅读(4391)
评论(0) 编辑 收藏 所属分类:
IBM Software