JBoss EAP 7.2 Oracle 休眠方言

Posted

技术标签:

【中文标题】JBoss EAP 7.2 Oracle 休眠方言【英文标题】:JBoss EAP 7.2 Oracle Hibernate Dialect 【发布时间】:2021-06-07 00:45:57 【问题描述】:

我正在使用 JBoss EAP 7.2 和 Oracle 12c ojdbc7.jar 该应用程序曾经工作。但是,在重新启动 JBoss 服务器后,我现在得到了

"WFLYCTL0080: Failed services" => "jboss.persistenceunit.\"monitoring4.war#primary\"" => "org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
Caused by: org.hibernate.boot.registry.selector.spi.StrategySelectionException: Unable to resolve name [oorg.hibernate.dialect.Oracle12cDialect] as strategy [org.hibernate.dialect.Dialect]
Caused by: org.hibernate.boot.registry.classloading.spi.ClassLoadingException: Unable to load class [oorg.hibernate.dialect.Oracle12cDialect]
Caused by: java.lang.ClassNotFoundException: Could not load requested class : oorg.hibernate.dialect.Oracle12cDialect"

我使用了一个没有休眠方言的简单persistence.xml

<persistence version="2.0">
  <persistence-unit name="primary">
  
  
     <jta-data-source>java:/blabla</jta-data-source> 

  <properties>
     <!-- Properties for Hibernate -->
    
     <property name="hibernate.show_sql" value="true" /> 
    
   
  </properties>

我已经尝试添加

<property name="hibernate.dialect" 
              value="oorg.hibernate.dialect.Oracle12cDialect"/>

不知道

"WFLYCTL0080: Failed services" => "jboss.persistenceunit.\"monitoring4.war#primary\"" => "org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
Caused by: org.hibernate.boot.registry.selector.spi.StrategySelectionException: Unable to resolve name [oorg.hibernate.dialect.Oracle12cDialect] as strategy [org.hibernate.dialect.Dialect]
Caused by: org.hibernate.boot.registry.classloading.spi.ClassLoadingException: Unable to load class [oorg.hibernate.dialect.Oracle12cDialect]
Caused by: java.lang.ClassNotFoundException: Could not load requested class : oorg.hibernate.dialect.Oracle12cDialect"

我应该在 EAP 7.2 中使用什么 Oracle 方言? 知道为什么应用程序没有任何更改(据我所知)就停止工作的任何想法肯定不在项目中。

谢谢,

汉斯

【问题讨论】:

【参考方案1】:
<property name="hibernate.dialect" 
              value="org.hibernate.dialect.OracleDialect"/>

解决了问题

【讨论】:

【参考方案2】:

检查您的项目/JBoss 实例中的 hibernate-core 版本(取决于您的战争或 JBoss 是否提供它)。

从 hibernate-core >= 5.0 开始支持org.hibernate.dialect.Oracle12cDialect

【讨论】:

以上是关于JBoss EAP 7.2 Oracle 休眠方言的主要内容,如果未能解决你的问题,请参考以下文章

JBoss EAP 6.4 -> 7.1 使用休眠 4 而不是默认休眠 5

无法在 JBoss EAP 7.2 中添加 SQL Server 数据源

带有 Infinispan 和 JBoss EAP 7.0.6 的休眠 L2C 不工作

javax.jms.JMSException:在向JBoss EAP 7.2中的嵌入式ActiveMQ Artemis发送消息时,未能创建会话工厂。

为啥从 JBoss 7.1.0EAP 到 Oracle 11g 生成了 100 个幽灵 Oracle 会话

作为部署安装时的 jboss-eap-6.1 oracle 驱动程序定义