【特集】
Java Persistence API(以下、JPA)は、JSR 220で仕様が標準化されているEJB 3.0(Enterprise JavaBeans, Version 3.0)の一部として新たに導入された、Javaオブジェクトの永続化のためのAPIである。EJB 3.0以前は、永続化に関する主要なAPIとしてJDO(Java Data Object)とEJB Entity Beanの2種類があった。しかしこの両者の間には互換性がないため混乱の元となっていた。このJDOとEntity Beanの整合性を取るために新たに設計されたのがJPAで、機能的には従来のEntity Beanに相当するPOJOベースのAPIとなっている。
JPAはEJB 3.0と同様にJSR 220においてその仕様が定められているが、APIとしてはEJBからは独立しているため単体で使用することも可能である。そこで本稿では、EJBの実装を持たないJava SEプラットフォームにおいて、JPAを利用してJavaオブジェクトの永続化を行う方法を解説する。
なお、EJB 3.0の仕様はここで公開されている。
従来のJava SEでも、JDBCを使用したプログラミングによってJavaオブジェクトの持つデータを外部のデータベースへ格納することができた。しかしこの方法ではJavaオブジェクトとデータベースのテーブルとの関連付けを自身で定義しなければならず、プログラムが繁雑になるという問題があった。その点、JPAを使用すれば、データベースを直接意識せずにJavaオブジェクトのデータを格納しておくことができる。さらにJPAではアノテーションを利用してデータベーステーブルとのマッピングやデータベース上のリレーションシップをシンプルなコードで記述することができる。
たとえば、永続化可能なJavaオブジェクトである「エンティティ」は@Entityアノテーションで表現する。エンティティには@Idアノテーションによって固有の番号を振ることができる。またリレーションシップを表現するアノテーションとして@OneToOne、@OneToMany、@ManyToOne、@ManyToManyなどが用意されている。
エンティティの管理は「エンティティマネージャ」によって行われる。エンティティマネージャはJPAによって用意され、エンティティの取得や永続化など、データベースや永続かコンテキストとの仲介となるAPIを提供する。「永続化コンテキスト」とはメモリー上のエンティティの集合を指す。
エンティティマネージャによって管理されるエンティティクラスやエンティティによって使用されるデータソースは、「永続化ユニット」によってコンテナに伝えられる。永続化ユニットはXML形式の設定ファイルによって定義される。
その他、JPAではデータアクセス時のトランザクション管理を行うエンティティ・トランザクションなどのAPIも提供されている。これによってトランザクションのコミットやロールバックなどが管理される。
本稿ではNetBeans環境上でJPAを利用したアプリケーションを作成する方法を、JPAの主要な実装であるTopLink EssentialsおよびHibernate EntityManagerについてそれぞれ解説する。
【コラム】ライトニングJava 第70回 JSPプログラミング(1) - ディレクティブ
【コラム】ダイナミックObjective-C 第57回 デザインパターンをObjective-Cで - Prototype (1)
| イプスイッチ、Windows環境の監視ツール「WhatsUp Gold」で日本語に対応 [15:33 5/28] |
| アイシンの最新安全運転システム - 車両周辺・後方障害物監視、わき見・居眠り判断 [10:30 5/28] |
| ラネクシー、画像処理ソフトウェア開発キットの最新版を64bit版で販売 [10:10 5/28] |
| 東陽テクニカ、1G/10GbE回線対応のポータブルネットワークアナライザ [09:57 5/28] |
| 日本発の取り組み「Mozilla Factory」がスタート [09:30 5/28] |
|
【連載】対処法付き! 「海外旅行トラブル」あるある 第2回 遠慮なく倒れてくるシートにストレスMAX [16:09 5/28] ライフ |
|
ゲッティ、簡略版URLなどを記載した新ウォーターマークを本格的に導入 [16:01 5/28] クリエイティブ |
|
【連載】今さら人に聞けない!! Photoshopのショートカットキー講座 第27回 クリッピングマスクを作成 [15:51 5/28] クリエイティブ |
|
如月芳規が新連載、ゼロサム作品袋とじデートピンナップも [15:50 5/28] ホビー |
|
10,000円以上の利用で、ANA・JALの500マイルをプレゼント-コナカ [15:35 5/28] ライフ |
4つの診断で、自分の適性を見つめなおそう!
働くこと・挑戦し続けることへの思いを綴ったインタビュー
あなたにピッタリのアドバイスを読むことができます。
転職に必要な情報が収集できます
企業からアプローチのメッセージが届きます。