Using the JPA DAO KrankでJPAのDAOを使ってみる Introduction This document describes how to use Crank's JPA DAO support. 導入 このドキュメントは、CrankのJPA DAOサポート機能の使い方を説明します。 Features of JPA DAO covered in this document JPA support for CRUD operations Create, Read, Update, Delete Support for defining no-code finder methods Support for Criteria API/DSL Support for easy to use finder methods このドキュメントでカバーするJPA DAOの機能は以下
おいでいただきありがとうございます。このブログでは、ソフトウェア開発や音楽(特にB'z)、車の事などを主にてきと〜に書いていく予定です。Rio's Laboratory (http://homepage3.nifty.com/rio_i/lab/) にて、いくつか文書とフリーソフトウェアを公開してます。 これまでの JPA 関連サンプルの DAO では、Entity の一覧を取得するために public List list() { Query query = em.createQuery("SELECT p FROM Person p"); return query.getResultList(); } の様なメソッドを用意していました。このメソッド内の "SELECT p FROM Person p" という SQL の様な記述は、JPQL (Java Persistence
JPAとは JPA(Java Persistence API)とはオブジェクトの世界からリレーショナルの世界へ、あるいはその逆への変換を行うためのAPIです。 それでは何もJPAを使わずともHibernateやiBatisを既に使っているから必要ないのではと考えられた方も多いかと思います。確かに既にそれらのO/Rマッピングフレームワーク(以降、O/Rマッパー)を利用されているのであれば特に必要ないのかもしれません。 そう思った方も少し待ってください。データベース製品の多様性を隠ぺいするためにJDBCが考えられたように、あるいはMOM製品の多様性を隠ぺいするためにJMSというAPIが考えられました。ところがO/Rマッパーの違いを隠ぺいするためのAPIは存在しなかったのです。iBatisを使用されている方にはあまり嬉しくないかもしれませんが、JPAの仕様作成の中心人物こそHibernateプロ
ブログのキーワード等で色々な人の考えを読んだ限りでは、Hibernateは複雑で使いにくいという人が多いし、JPAは微妙だと言う人が多いと感じています。それは間違いではないと思います。SQLを発行したいという目的に対しては、JPA・Hibernateは複雑すぎますし、SQLベースのORMに比べてSQL実行処理が使い易いわけではありません(特にJPAのSQLの使い辛さは致命的です)。CRUD処理ではSQLをほぼ自動発行できますが、そのレベルの処理ならば、今はどのORMも標準機能として持っています。 ではこれらのFWは要らないものなのでしょうか? 自分はたまたま仕事上でHibernateを複数回使い、その特長が最近になってようやく解ってきました。たしかに複雑で、初心者にとって敷居の高いFWです。Entityの状態変更とかLAZYロードとか、よく解ってないとすぐにハマってしまいます。 でもその一
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ページを開く