今天自己写的一个ssh项目,使用了hibernate的java web项目时,运行发现报错“java.lang.NoSuchFieldError: INSTANCE”
检查发现数据库什么的都没有问题,包也都有。(hibernate开发八个必须的包:hibernate3.jar,cglib-asm.jar,dom4j.jar,odmg.jar,commons-collections.jar,commons-beanutils.jar,commons-lang.jar,commons-logging.jar)
有大神说是配置文件里的class里的属性名拼写错误了,即映射文件里边的映射列名与数据库中的列名不匹配导致的,但实际上我的配置文件也没有问题。。。。
最后发现是包有冲突了。。。这个包hibernate3.jar,里面已经包含annotations相关包,与老版本冲突。
而项目中重复引用了 hibernate-annotations.jar 和 hibernate-commons-annotations.jar,所以只要删掉hibernate-annotations.jar 和 hibernate-commons-annotations.jar即可。
!!!!反向工程自动生成的时候注意不要导入hibernate原来的jar包就可以避免出现此错误。