`

Hibernate连Oracle报“Could not obtain connection metadata”错误解决办法

阅读更多
原创:隔壁老王(http://wallimn.iteye.com),欢迎转载,转载请保留本人信息。

Hibernate版本3.5.2、Oracle版本9i、JDK版本1.6

一切配好了之后,报了这样一个警告,
WARN SettingsFactory:130 - Could not obtain connection metadata
java.sql.SQLException: 不支持的特性

仔细看了一下报错信息,出现问题的代码位置:
at $java.sql.DatabaseMetaData$$EnhancerByProxool$$711971dc.supportsGetGeneratedKeys(<generated>)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:127)
注意:我使用了proxool连接池,未使用的可能有点儿不一样,但都会显示supportsGetGeneratedKeys这个函数
看了看hibernate的源码,第127行为:
metaSupportsGetGeneratedKeys = meta.supportsGetGeneratedKeys();

个人觉得这个错误应该不影响系统的正常运行。但有个错误很让人不爽。分析错误原因可能跟JDBC的驱动有关系。
虽然使用的是ojdbc14.jar,但看了一下MANIFEST.MF,显示
Implementation-Time: "Thu Apr 25 23:14:02 2002"

去官方网站下载了个最新的ojdbc14.jar,发现MANIFEST.MF中信息为:
Implementation-Time: "Fri Jun  9 04:31:01 2006"
应该有些变化,虽然名字一样。

替换了系统中旧的ojdbc14.jar,问题果然解决了。


分享到:
评论
2 楼 wallimn 2011-03-05  
下载最新版的ojdbc14,上官方网站找找。
1 楼 林里风咏 2011-03-05  
我的也把class换成了ojdbc14了,可是还是报那样的错误啊,这是为什么?

相关推荐

Global site tag (gtag.js) - Google Analytics