「みんな教えて! 選手権!!」開催のお知らせ

現在、StrutsとHibernateを用いてWebアプリケーションの作成をしている者です。
タイトルにも書いた、hibernate.cfg.xmlの配置場所について質問させて下さい。

プロジェクトはEclipseの「動的Webプロジェクト」で作成しているのですが、この場合、hibernatecfg.xmlを配置する場所は、ルートのsrcフォルダ直下でよろしいのでしょうか?

現在の障害としては、
Configuration config = new Configuration();
SessionFactory sessionFactory = config.buildSessionFactory();
としているところで、以下のエラーが発生してしまっているんです。
org.hibernate.HibernateException: Hibernate Dialect must be explicitly set

色々試してみたところ、hibernatecfg.xmlを読み込めていないのが原因なのかと考えているところです。

Javaに関してはまだまだ知識が浅く、Hibernateに至ってはほとんど初心者レベルですので、もしかしたらかなり的外れな質問になっているかと思いますが、アドバイス等ありましたら、宜しくお願い致します。

A 回答 (1件)

以前、「どんなことができるのか」と独学でHibernateの勉強をした程度ですが…。



hibernate.cfg.xmlファイルはクラスパスの通っているディレクトリの直下に置きます。
動的Webプロジェクトを作成されているのであれば、[WEB-INF/lib]ディレクトリ直下に置けばいいと思います。

また、

org.hibernate.HibernateException: Hibernate Dialect must be explicitly set

というエラーは<property name="dialect">...</property>が適切に記述されていない場合に発生するエラーです。
dialectはDB依存するSQL(いわゆるSQL方言)を吸収するために必要な設定です。

もしhibernate.cfg.xmlファイルを適切なディレクトリに置いても上記のエラーが発生するようでしたら、

[MySQLをご使用の場合]
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>

[PostgreSQLをご使用の場合]
<property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property>

のように記述されているかご確認下さい。
    • good
    • 0
この回答へのお礼

ご返答ありがとうございます。

自分なりに色々調べてみたのですが、やはりどうしてもわからず、書籍を参考にしてAnnotationConfigurationを使うやり方に変更することにしました。

hibernate.cfg.xmlには
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
と記述してありましたし、試しにhibernate.cfg.xml自体を削除してみても、全く同じエラーが発生していたので、何かの設定を変更してしまったのかもしれません。

今度時間があるときに、再度調べてみようと思っています。

丁寧なご返答、ありがとうございました。

お礼日時:2009/06/16 09:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報