1-1.Hibernate/cfg.xml/hbm.xml/propertiesの設定
今日は管理人(@vip___p)です。
今回はhibernateの設定を行ったのでまとめています。
備忘録用です。
初めてHibernateを使用することになったのですが
hibernateの環境設定を行ってみると意外と
参考にできる資料がなく苦労しました。
mavenなどは使用していません。
またVersionが古いものばかりで正直正しいのかわからなかったです。
私のものはVersion5を使用しています。
少し適当な内容かもしれませんが
気になる点があればコメントお願いします。
同じような方は是非参考にしてください。
HibernateのcreateCriteriaの代案や苦労点について
Hibernateの環境設定での苦労点
- Hibernate.cfg.xml
- sample.hbm.xml
- hibernate.properties
この3点で苦労しました。
順に確認していきましょう。
Hibernate.cfg.xml
簡単に言うとDBの接続とかHibernate特有のmappingの設定を行ったりします。
DOCTYPEの宣言部分で間違えており苦労しました。
ですがcfg.xmlはダウンロードしたHibernateのファイルのetcの中に入っているのです。
これを知っていれば苦労が減りました。
基盤となる部分ができているので動きを確認するには十分です。
あとはクラスパスなど注意して配置してください。
不適切な場所に配置すると当然読み込まれないことがあります。
sample.hbm.xml
こっちのsample.hbm.xmlはHibernate.cfg.xmlでmappingで設定したテーブルの定義みたいなイメージです。
直感で分かる内容が多いと思います。
hibernate-mappingの中の記述は意外とわかりやすかったですが
DOCTYPEの部分に誤りがあり苦労しました。
正確なエラー内容は忘れてしまったのですが
- ダウンロードできない
- mapping,class,idとかの宣言する必要がある
とかならDOCTYPEの部分を疑ってみてください。
あとはPOJOクラスの設定も忘れず行ってください。
setter/getterのあいつです。
hibernate.properties
hibernate.propertiesも一応配置しました。
これも書き方がわからに人が多いかもしれませんが
Hibernate.hbm.xml同様にetcファイルの中に入っています。
hibernate.propertiesを記述する場合は、
Hibernate.cfg.xmlのsession-factoryの記述はmappingだけを記載して
DBの接続などはHibernate.propertiesで記述します。
元々は記述していませんでしたが
「cannot be null when ‘hibernate.dialect’ not set」
このエラーメッセージで配置するはめに。
そのほかの解決策としては下記のコードを記述しました。
Configuration cfg = new Configuration() .addClass(org.hibernate.auction.Sample.class) .setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLInnoDBDialect");
この記述をすることによりエラーメッセージは消えsessionを取得することができました。
まとめ
今回は簡単にHibernateの苦労点をまとめました。
また困ったら追記していこうと思います。
ディスカッション
コメント一覧
まだ、コメントがありません