gpt4 book ai didi

java - 如何避免 CouldNotDetermineHibernateDialectException 错误?

转载 作者:搜寻专家 更新时间:2023-11-01 03:34:12 25 4
gpt4 key购买 nike

我正在将 oracle 从 10 升级到 12,对于这个特定的项目,我遇到了这个错误:

<[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1460078994317> <BEA-101162> <User defined listener org.codehaus.groovy.grails.web.context.GrailsContextLoaderListener failed: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManagerPostProcessor': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager': Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory': Cannot resolve reference to bean 'hibernateProperties' while setting bean property 'hibernateProperties'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hibernateProperties': Cannot resolve reference to bean 'dialectDetector' while setting bean property 'properties' with key [hibernate.dialect]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dialectDetector': Invocation of init method failed; nested exception is org.codehaus.groovy.grails.orm.hibernate.exceptions.CouldNotDetermineHibernateDialectException: Could not determine Hibernate dialect for database name [Oracle]!.
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManagerPostProcessor': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager': Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory': Cannot resolve reference to bean 'hibernateProperties' while setting bean property 'hibernateProperties'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hibernateProperties': Cannot resolve reference to bean 'dialectDetector' while setting bean property 'properties' with key [hibernate.dialect]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dialectDetector': Invocation of init method failed; nested exception is org.codehaus.groovy.grails.orm.hibernate.exceptions.CouldNotDetermineHibernateDialectException: Could not determine Hibernate dialect for database name [Oracle]!

它似乎无法识别我在 DataSource 上添加的配置:

dataSource {
pooled = true
driverClassName = "oracle.jdbc.OracleDriver"
dialect = "org.hibernate.dialect.Oracle10gDialect"
}

我们使用的是 Java 8,我们对代码有这些依赖:

runtime 'com.oracle:ojdbc7:12.1.0.2'
runtime(group: 'com.oracle', name: 'ons', version: '10.2.0.3')

问题是它正在为另一个项目工作(与这个项目具有相同的结构,但由于某种原因它在这里不工作)

有没有什么遗漏的或者我能找到问题并解决问题的?

最佳答案

此问题发生在 java 版本 1.7.0_25 上。通过将 java 1.7.0_25 升级到另一个更高版本将帮助您解决问题。有时降级到 1.6.X 也可以。但升级是最好的解决方案。

已在 Grails 2.2.3 中修复。但是在 Grails 2.2.3 中,对于 Linux 上的 OpenJDK 1.7.0_25 仍然是错误的,不过 Oracle 的 JDK 确实可以工作。

归功于@ aeischeid


本教程中给出了逐步解决方案: Connect Grails with Oracle 11g Example Configuration

资源链接:

  1. > How do I avoid 'Could not determine Hibernate dialect for databasename [H2]!'?

更新

建议 - 1:

来自 this tutorial ,我有两个建议,请尝试这两个问题-您需要安装 Grails H2 plugin .添加

compile ":h2:0.2.6"

grails-app/conf/BuildConfig.groovy,在 plugins block 中。

建议 - 2:

DataSource.groovy 中,它们区分大小写。所以请检查是否有任何大小写不匹配的内容(如 username 或其他)。

资源链接:MASSIVE ERROR ON GRAILS RUN-APP

建议 - 3:

danielnaber给出一些建议grails compile --refresh-dependencies 和/或 grails clean 可能会有所帮助。您需要在 grails-app/conf/DataSource.groovy 中配置数据库访问(development 用于 grails run-app,production 用于 grails war )

建议 - 4:

来自 this tutorial删除您的 DataSource.groovy 文件并在执行 grails clean 后重建 WAR,这将禁用基于默认文件的数据源

目前它正在尝试在文件系统上创建数据库但失败了,因为您没有这样做的权限。

建议 - 5:

可以看https://github.com/Netflix/Lipstick/issues/8

建议 - 6:

当你在那里时,你应该修复你也看到的缓存提供者警告 - 将 hibernate block 中的 'cache.provider_class' 的值更改为

   cache.provider_class = 'net.sf.ehcache.hibernate.EhCacheProvider' 

请尝试 6 条建议。希望对您有所帮助。

关于java - 如何避免 CouldNotDetermineHibernateDialectException 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36505939/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com