ページの先頭行へ戻る
Interstage Studio Java EEワークベンチユーザーズガイド

4.1.1 JPAとは

Java Persistence API(JPA)は、EJB 2.1のEntity Beanの仕様をEJB3.0から独立した1つの仕様にまとめられものです。JPAは、リレーショナルデータベース(RDB)をJavaのアプリケーションから操作するために、オブジェクト/リレーション(O/R)マッピングの仕組みを提供します。O/Rマッピングは、Javaの永続クラスとRDBのテーブルをマッピングすることで、データの永続化を容易に行えるようにしたものです。JPAはデータベースをJavaのオブジェクトとして扱えるため、データベースにSQL文を発行する場面を少なくすることができます。

以下に、JPAを理解するうえで必要な用語について簡単に説明します。

EJB2.1からの変更点

EJB2.1のEntity BeanとJPAのEntityでは、以下の点が大きく異なります。

以下に、JPAで使用する主なアノテーションについて、簡単な例を紹介します。

javax.persistence.Entityアノテーション

クラスをEntityとして定義するアノテーションです。以下の要素を指定できます。

要素名

解説

name

Entityの名前。省略するとクラスの名前がEntityの名前になります。

Entityアノテーションの使用した例

package sample;

import javax.persistence.Entity;

@Entity
public class Employee {
      	@Id
      private int     id;
      private String  name;
      private String  address;
      private String  tel;
}

javax.persistence.PersistenceContextアノテーション

EntityはEntityマネージャで管理されています。このEntityマネージャをDependency Injectionするためのアノテーションです。以下の要素を指定できます。

要素

解説

name

コンテキストを参照する環境でEntityマネージャにアクセスする場合の名前です。Dependency Injectionの場合は使用しません。

properties

コンテナや永続プロバイダにプロパティを指定する場合に使用します。

type

トランザクションのタイプを指定します。

unitName

永続ユニットの名前。JNDIでアクセスできる名前を指定します。

PersistenceContextアノテーションを使用した例

@PersistenceContext
EntityManager em;

public Employee getEmployeeByPrimaryKey (int id) {
    return em.find(Employee.class, id);
}