Hibernate Tools 3.6.0で Eclipse STS 3.1.0 を使用しています。DAO クラスを生成するために MySQL 5.5 データベースに接続しようとしています。MySQL ドライバー mysql-connector-java-5.1.21.jar を使用しています
(Hibernate ツールの) hibernate コンソール ファイルをセットアップしているときに、データベースに対して正常に ping を実行できました。したがって、ドライバーのバージョンは問題ないと思います。
Hibernate コンソール ファイルをセットアップした後、Hibernate リバース エンジニアリング ファイル (reveng.xml) を生成しようとすると、次のエラーが発生します -
An internal error occurred during: "Fetching children of Database".
STS のエラー ログに次のスタック トレースが表示されます -
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:54)
このリンクで説明されている Hibernate ツールを使用する手順を使用しています。
この問題を解決するためのヘルプやポインタをいただければ幸いです。ありがとう。
アップデート
STS 3.2.0 に移行し、JBoss Tools 4.0.0 をインストールしました
シンプルなmavenクイックスタートプロジェクトを作成し、リンクに記載されているすべての手順に従いました
このセットアップでは、データベース テーブルのエンティティと DAO クラスを正常に生成できました。STS を再起動する必要もありませんでした。最初の試み自体ではうまくいきました。
これは、MySQL 5.5 および Oracle 11g で正常に動作します。