0

STS/Eclipse で Grails を使用しており、Hibernate Tools を使用して HQL クエリをテストおよびシミュレートしたいと考えています。JBoss Toolsの一部である Eclipse へのHibernate Toolsアドオンがあります。

Grailsで動作させることができませんでした。クラスがあるとしましょう:

class User {
  String name
  Date birthday
}

Grails プロジェクトでHibernate Toolsを正しく動作させるにはどうすればよいですか? また、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で動作させるにはどうすればよいですか?

4

1 に答える 1

0

1.5.x と 1.6.x の間で SLF4J と互換性のない API の変更があったようです。おそらくバージョン 1.5.x が Eclipse にインストールされていますが、休止状態ツールは 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

于 2013-06-10T01:18:09.740 に答える