当前位置: 首页 > 面试题库 >

如何避免“无法确定数据库名称[H2]的休眠方言!”?

陆宏壮
2023-03-14
问题内容

运行时出现此错误grails run-app

执行引导程序时出错:创建名称为’messageSource’的bean时出错:初始化bean失败;嵌套的异常是org.springframework.beans.factory.BeanCreationException:创建名称为’transactionManager’的bean时出错:设置bean属性’sessionFactory’时无法解析对bean’sessionFactory’的引用;嵌套的异常是org.springframework.beans.factory.BeanCreationException:创建名称为’sessionFactory’的bean时出错:在设置bean属性’hibernateProperties’时无法解析对bean’hibernateProperties’的引用;嵌套的异常是org.springframework.beans.factory.BeanCreationException:创建名称为“
hibernateProperties”的bean时出错:无法解析对bean“ dialectDetector”的引用
同时使用键[hibernate.dialect]设置bean属性“
properties”;嵌套的异常是org.springframework.beans.factory.BeanCreationException:创建名称为’dialectDetector’的bean时出错:调用init方法失败;嵌套的异常是org.codehaus.groovy.grails.orm.hibernate.exceptions.CouldNotDetermineHibernateDialectException:无法确定数据库名称[H2]的Hibernate方言!

根据 DataSource.groovy

dataSource {
  pooled = true
  driverClassName = "org.h2.Driver"
  username = "sa"
  password = ""
  // Adding this causes a different error:
  // dialect = org.hibernate.dialect.H2Dialect
}

hibernate {
  cache.use_second_level_cache = true
  cache.use_query_cache = true
  cache.provider_class = 'net.sf.ehcache.hibernate.EhCacheProvider'
}

environments {
  development {
    dataSource {
      dbCreate = "create-drop" // one of 'create', 'create-drop','update'
      url = "jdbc:h2:mem:devDB"
    }
  }
  test { // test-related stuff }
  production { // prod-related stuff }
}

当我明确提供上述方言org.hibernate.dialect.H2Dialect)时,就会发生此错误:

执行引导程序时出错:创建名称为’messageSource’的bean时出错:初始化bean失败;嵌套的异常是org.springframework.beans.factory.BeanCreationException:创建名称为’transactionManager’的bean时出错:在设置bean属性’sessionFactory’时无法解析对bean’sessionFactory’的引用;嵌套的异常是org.springframework.beans.factory.BeanCreationException:创建名称为’sessionFactory’的bean时出错:调用init方法失败;嵌套的异常是java.lang.IncompatibleClassChangeError:找到了类org.hibernate.cfg.Mappings,但是期望使用接口

有人知道如何应对吗?

(错误报告以http://jira.grails.org/browse/GRAILS-7994形式存在)


问题答案:

这是Joda时间插件中的错误。有关详细信息,请参见提到的JIRA问题。



 类似资料:
  • 问题内容: 我在Heroku服务器上托管了一个网站( 我是Heroku btw的新用户 ),并且由于它是免费软件包,因此在 闲置30m 后便 进入 休眠 状态 ,并在用户点击它后再次将其投入使用,大约需要7秒才能成功。 我正在考虑运行nodejs作业或每隔29m就会打开网站的一次作业,以使服务器永不休眠,最初,我得到的是这样的内容: 注意:那只是在浏览器中打开它,而不是关闭它。 首先,这样做是否合

  • 问题内容: 是否可以仅对hibernate-search的注释(bean => document / document => bean mapping)使用hibernate-search,而不使用数据库?如果是这样,是否有任何在线样本基本上显示了如何进行设置? 我发现了以下内容:http : //mojodna.net/2006/10/02/searchable-annotation-drive

  • 问题内容: 我在Ubuntu的 2.2.0* 版本中使用 grails 已有一段时间,一切都进行得很好。我的申请运行正常。昨天我将JDK更新为1.7.0_25,我敢肯定那只是我所做的更改。从那时起,我的所有应用程序在调用run- app时都会引发错误(底部的stacktrace)。 * 我在一个项目上摆弄了webxml插件,但我认为这不会搞乱其他应用程序。我使用git进行版本控制,即使我返回稳定的

  • 我在Ubuntu上使用grails 2.2.0版有一段时间了,一切都很顺利。我的应用程序运行良好。昨天我将JDK更新为1.7.0_25,我确信这是我做的唯一更改。从那时起,所有我的应用程序在调用run应用程序时都会出错(底部的stacktrace)。 我在一个项目上摆弄了webxml插件,但我不认为这会搞砸其他应用程序。我使用git进行版本控制,即使我回到稳定提交,错误仍然会出现。 有趣的是,如果

  • 问题内容: 某些数据库功能(例如和)很容易受到死锁的影响,因为数据库未指定将使用哪种锁定顺序。我发现有两次 讨论暗示此行为不是SQL标准指定的,更不用说具体的实现了。因此,我在假设我们无法控制锁定顺序的情况下进行操作(至少,这样做并不明显)。 如果我们不能依赖锁定顺序,应该如何避免数据库死锁? 如果我们不应该避免僵局(您将不得不非常努力地说服我),那么我们应该怎么做? 这个问题与数据库无关,所以请

  • 问题内容: 我写这篇文章,以了解是否有人知道该怎么做: 我想做这个插入: 加密是存储在我的数据库中的函数,也是我想在代码中插入的函数。实际上,当我想在数据库中插入某些内容时,我会使用: 但是我想进行“自定义”插入,因为我需要使用该功能。 我正在使用hibernate+注释: 但是必须从文件中读取密钥“ cdp”,因此该解决方案对我不起作用。 我想在代码上使用一种方法来执行SQL查询(INSERT查