ブログのキーワード等で色々な人の考えを読んだ限りでは、Hibernateは複雑で使いにくいという人が多いし、JPAは微妙だと言う人が多いと感じています。それは間違いではないと思います。SQLを発行したいという目的に対しては、JPA・Hibernateは複雑すぎますし、SQLベースのORMに比べてSQL実行処理が使い易いわけではありません(特にJPAのSQLの使い辛さは致命的です)。CRUD処理ではSQLをほぼ自動発行できますが、そのレベルの処理ならば、今はどのORMも標準機能として持っています。 ではこれらのFWは要らないものなのでしょうか? 自分はたまたま仕事上でHibernateを複数回使い、その特長が最近になってようやく解ってきました。たしかに複雑で、初心者にとって敷居の高いFWです。Entityの状態変更とかLAZYロードとか、よく解ってないとすぐにハマってしまいます。 でもその一
Others Other Hibernate related projects (e.g. Hibernate OGM, Hibernate Shards).
HibernateのSQLQueryとResultTransformerを組み合わせれば、SQLの結果をDTO(Not Entity)に詰められるのは以前から知っていました。しかし、よくよく調べてみると、このResultTransformerはEntityの結果を返すときにも有効利用できるみたいです。 たとえば・・・ session.createSQLQuery( "SELECT" + " {mtoo.*}" + ",{otmi.*}" + " FROM" + " ManyToOneOwner mtoo" + " INNER JOIN" + " OneToManyInverse otmi" + " ON" + " otmi.id = mtoo.oneToManyInverse_id" + " WHERE" + " mtoo.id <= :id") .addEntity("mtoo", Ma
1ヶ月ほどご無沙汰してました。開発に没頭してましたが、そろそろ製造フェーズが終わりそうなので、ちょっと一息入れています。 Hibernateを今回初めて使ってみました。後、今思えばかなりチャレンジャーだったのですが(汗)、Hibernate EntityManagerをAPIとして利用しました。利用した理由はあまり技術的な理由ではなく、プロジェクト内のごたごたした関係が原因なので、あまり多くは触れません(苦笑) さて、せっかく使ってみたので感想を書いてみようと思います。まず、JPAは結論として、かなり使えると思います。特にWebアプリケーションで典型的な処理(一覧表示、詳細表示、詳細の修正等)に関しては、きちんとDBのスキーマからEntityを起こして関連の定義さえ行ってあげれば、各業務のDBまわりの実装は驚く程少なくなります。今回自分は分離オブジェクトをmergeする手法で更新処理を行っ
Hibernateに関するちょっとしたテクニックを紹介していきます。 デフォルト値で登録 † DBにデータを登録する際に、テーブルに定義してあるデフォルト値で 登録したいケースがある。たとえば、仕様変更によりテーブルに項目が追加されたが、明示的に指定された場合以外はデフォルト値で登録したい場合などである。 Hibernateでは上記のような場合、マッピングファイルに特別な記述をすることで対応可能である。 <hibernate-mapping> <class name="entity.GroupInfo" table="group_info" dynamic-insert="true"> <comment></comment> <id name="groupId" type="long"> class要素のdynamic-insert属性にtrueを設定すると、設定された項目(null以外
Java Persistence API(JPA) とは Java Persistence API(JPA) は Java の O/R マッピング標準 API。 概要は (日経BPの記事)が分かりやすい。 メリットは オブジェクト指向で DB 開発がサクサクできる。 テーブルや制約などを自動的に作成できる。 オブジェクト・キャッシュの仕組みなどによって DB アクセスの負荷軽減・高速化が期待できる。 という点。デメリット(注意点)は DB や SQL に関する知識が不要になるわけではない。 上手に DB 設計しないとメモリを馬鹿食いしたり、逆に性能低下で悩まされやすい。 エンティティ設計者は、どういうテーブル・制約・SQLが生成されるかを意識する必要がある。 ということで、開発者は既存の DB や SQL に加え、JPA に関する知識の習得を要求される。 といったところ。 デメリットに関し
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く