【问题标题】:Jboss 5.1, hibernate, using Oracle8gDialect when i'm specifying Oracle10gDialectJboss 5.1,休眠,当我指定 Oracle10gDialect 时使用 Oracle8gDialect
【发布时间】: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


【解决方案1】:

我最终在 SVN 存储库中找到了一个 jboss 版本,据我所知,它看起来可能带有升级版的 hibernate。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-19
    • 2010-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-23
    • 2015-05-05
    • 2019-05-04
    相关资源
    最近更新 更多