【发布时间】:2013-02-20 19:06:08
【问题描述】:
我继承了一个我试图在 jboss 5.1 上本地运行的应用程序。该应用程序正在使用休眠,而我们正在为我们的数据库使用 Oracle 11g。
当我启动应用程序时出现此错误:
javax.persistence.PersistenceException: org.hibernate.HibernateException: Problem while trying to load or access OracleTypes.CURSOR value
这个错误:
Caused by: java.lang.IllegalAccessException: Class org.hibernate.dialect.Oracle8iDialect can not access a member of class oracle.jdbc.driver.OracleTypes with modifiers ""
在我的 persistence.xml 文件中,我设置了这个:
<persistence-unit name="DomainPU">
<jta-data-source>java:/AuthorizationDS</jta-data-source>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/>
</properties>
</persistence-unit>
关于导致这些错误的原因以及如何修复它们的任何建议?我什至不确定现在该尝试什么。
【问题讨论】:
-
您使用的是什么版本的 Oracle 驱动程序?确保您使用的不是旧版本或已弃用的版本。
-
我没有遇到这个错误,但它看起来像是 oracle jdbc 驱动程序版本的问题。您是否尝试过使用 ojdbc14(对于 Oracle 10g:oracle.com/technetwork/database/enterprise-edition/…)。也看看这篇文章:forums.oracle.com/forums/thread.jspa?messageID=3190796
-
不是 ojdbc14 用于 java 4 吗?我正在用 java 6 编译。
-
ojdbc14 驱动程序适用于 java 4 或 5,用于访问 Oracle10g 数据库,但它在 Java6 中也应该可以正常工作。另一方面,ojdbc6 驱动程序适用于 Oracle11g,据我所知,您应该能够使用此驱动程序访问 Oracle10g,但是您遇到的问题让我对此表示怀疑。 (我们在工作中使用的配置是Java 6.x + JBoss 5.1 + ojdbc14 driver + Oracle10g)。
-
我实际上只是检查了我们使用的数据库,我们使用的是 11g。但是我们显然使用的是10g方言。那么这意味着 ojdbc14 将无法正常工作?
标签: java oracle jakarta-ee jboss