Hibernate3 出错

Hibernate3 报错
使用JBOSS5.1.0.GA里面的Hibernate 3.3.1.GA,在调用数据库里面的PKG时候发现下面的错误
11:22:13,356 ERROR [STDERR] org.hibernate.HibernateException: Problem while trying to load or access OracleTypes.CURSOR value
	at org.hibernate.dialect.Oracle8iDialect.registerResultSetOutParameter(Oracle8iDialect.java:399)
	at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1586)
	at org.hibernate.loader.Loader.doQuery(Loader.java:696)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259)
	at org.hibernate.loader.Loader.doList(Loader.java:2228)
	at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2125)
	at org.hibernate.loader.Loader.list(Loader.java:2120)
	at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:312)
	at org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1722)
	at org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:165)
	at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:175) 


检查发现是hibernate-core.jar里面有错误,使用反射取数据时候有问题
      try {
        Class types = ReflectHelper.classForName("oracle.jdbc.driver.OracleTypes");
        this.oracletypes_cursor_value = types.getField("CURSOR").getInt(types.newInstance());
      } catch (Exception se) {
        throw new HibernateException("Problem while trying to load or access OracleTypes.CURSOR value", se);
      } 


解决的版本就是升级hibernate-*.jar相关的包,当然能拿到org.hibernate.dialect.Oracle8iDialect源码自己修改然后打包也是可以的, 为了安全还是升级到3.3.2.GA就行