簡體   English   中英

如何配置Grails應用程序以與STS / Eclipse上的Hibernate Tools一起使用?

[英]How to configure my Grails app to be used with Hibernate Tools on STS/Eclipse?

我在STS / Eclipse上使用Grails,並且想要使用Hibernate Tools來測試和模擬HQL查詢。 Eclipse的Hibernate Tools插件是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 Tools一起使用?

似乎SLF4J在1.5.x和1.6.x之間進行了不兼容的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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM