【问题标题】:How to configure my Grails app to be used with Hibernate Tools on STS/Eclipse?如何配置我的 Grails 应用程序以在 STS/Eclipse 上与 Hibernate Tools 一起使用?
【发布时间】:2013-06-04 07:02:04
【问题描述】:

我在 STS/Eclipse 上使用 Grails,并希望使用 Hibernate 工具来测试和模拟 HQL 查询。 Hibernate Tools 附加到 Eclipse,它是 JBoss Tools 的一部分。

我想不出让它与 Grails 一起工作。假设我有一堂课:

class User {
  String name
  Date birthday
}

为了使 Hibernate Tools 在我的 Grails 项目中正常工作,我必须做些什么?在将 Hibernate 连接到我的数据库和项目后,我也收到以下错误:

java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;[Ljava/lang/Object;Ljava/lang/Throwable;)V
at org.apache.commons.logging.impl.SLF4JLocationAwareLog.debug(SLF4JLocationAwareLog.java:133)
at org.hibernate.cfg.reveng.dialect.JDBCMetaDataDialect.getTables(JDBCMetaDataDialect.java:26)
at org.hibernate.cfg.reveng.JDBCReader.processTables(JDBCReader.java:476)
at org.hibernate.cfg.reveng.JDBCReader.readDatabaseSchema(JDBCReader.java:74)
at org.hibernate.eclipse.console.workbench.LazyDatabaseSchemaWorkbenchAdapter$2.execute(LazyDatabaseSchemaWorkbenchAdapter.java:126)
at org.hibernate.console.execution.DefaultExecutionContext.execute(DefaultExecutionContext.java:63)
at org.hibernate.console.ConsoleConfiguration.execute(ConsoleConfiguration.java:107)
at org.hibernate.eclipse.console.workbench.LazyDatabaseSchemaWorkbenchAdapter.readDatabaseSchema(LazyDatabaseSchemaWorkbenchAdapter.java:115)
at org.hibernate.eclipse.console.workbench.LazyDatabaseSchemaWorkbenchAdapter.getChildren(LazyDatabaseSchemaWorkbenchAdapter.java:65)
at org.hibernate.eclipse.console.workbench.BasicWorkbenchAdapter.fetchDeferredChildren(BasicWorkbenchAdapter.java:106)
at org.eclipse.ui.progress.DeferredTreeContentManager$1.run(DeferredTreeContentManager.java:235)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)

如何让我的 Grails 项目使用 Hibernate 工具

【问题讨论】:

    标签: java eclipse hibernate grails sts-springsourcetoolsuite


    【解决方案1】:

    在 1.5.x 和 1.6.x 之间似乎存在与 SLF4J 不兼容的 API 更改。您可能在 Eclipse 中安装了 1.5.x 版本,但休眠工具需要 1.6.x。我不确定你是如何进入那种状态的。我猜测休眠工具需要不正确的 slf4j 版本。更有可能是版本约束过于宽松,不应该使用 1.5.5。

    确实,看Hibernate工具的源码,版本是1.5.8:

    https://github.com/hibernate/hibernate-tools/blob/master/pom.xml#L135

    我不确定如何解决这个问题,但它看起来确实像休眠工具中的一个错误。他们应该将其更改为 1.6.1 或更高版本。我会向他们提出问题或在他们的邮件列表中发布。您可以在此处找到执行此操作的位置:

    https://github.com/hibernate/hibernate-tools

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多