2.1 対応するアノテーションのサポート範囲
2.1.6 javax.persistence パッケージに含まれるアノテーションのサ ポート範囲
javax.persistence パッケージのアノテーションは,JPA プロバイダに依存する場合としない場合で記述で きるコンポーネントが異なります。ここでは,JPA プロバイダに依存するアノテーションと JPA プロバイ ダに依存しないアノテーションに分けて説明します。
(1) JPA プロバイダに依存するアノテーションの場合
JPA プロバイダに依存するアノテーションの適用範囲を説明します。ここでは,コンポーネントごとに記述 できるアノテーションを説明します。
(a) WAR ファイル(Servlet 3.0 対応)
WAR ファイルに記述できるアノテーションの一覧を示します。
表 2‒18 WAR ファイル(Servlet 3.0 対応)に記述できるアノテーション(javax.persistence パッケー ジ)
アノテー ション名
Servlet 仕様 JSP 仕様
例外 クラ ス
Man age dBe an(J SF)
その 他の クラ ス サー
ブ レッ
ト
サー ブ レッ
ト
(API
) サー
ブ レッ
ト フィ ルタ
サー ブ レッ
ト フィ ルタ
(API
) イベ ント リス ナ
イベ ント リス ナ
(API
) JSP ファ イル
タグハンドラ タグ ライ ブラ リイ ベン トリ スナ クラ
シッ クタ グハ ンド ラ
シン プル タグ ハン ドラ
@Persiste nceConte xt
○ − ○ − ○ − − ○ ○ × − ○ −
@Persiste nceConte xts
○ − ○ − ○ − − ○ ○ × − ○ −
@Persiste nceProper ty
○ − ○ − ○ − − ○ ○ × − ○ −
@Persiste nceUnit
○ − ○ − ○ − − ○ ○ × − ○ −
@Persiste nceUnits
○ − ○ − ○ − − ○ ○ × − ○ −
(凡例)
○:対応する。
×:アプリケーションサーバでは対応しない。
−:標準仕様で対応していない。
(b) WAR ファイル(Servlet 2.5 対応)
WAR ファイルに記述できるアノテーションの一覧を示します。
表 2‒19 WAR ファイル(Servlet 2.5 対応)に記述できるアノテーション(javax.persistence パッケー ジ)
アノテーション名
Servlet 仕様 JSP 仕様
その他の サーブ クラス
レット
サーブ レット フィルタ
イベント リスナ
JSP ファ イル
タグハンドラ タグライ
ブラリイ ベントリ スナ クラシッ
クタグハ ンドラ
シンプル タグハン ドラ
@PersistenceContex t
○ ○ ○ − ○ ○ × −
@PersistenceContex ts
○ ○ ○ − ○ ○ × −
アノテーション名
Servlet 仕様 JSP 仕様
その他の サーブ クラス
レット
サーブ レット フィルタ
イベント リスナ
JSP ファ イル
タグハンドラ タグライ
ブラリイ ベントリ スナ クラシッ
クタグハ ンドラ
シンプル タグハン ドラ
@PersistencePropert y
○ ○ ○ − ○ ○ × −
@PersistenceUnit ○ ○ ○ − ○ ○ × −
@PersistenceUnits ○ ○ ○ − ○ ○ × −
(凡例)
○:対応する。
×:アプリケーションサーバでは対応しない。
−:標準仕様で対応していない。
(c) EJB-JAR ファイル(EJB3.1/EJB3.0 対応)
EJB-JAR ファイルに記述できるアノテーションの一覧を示します。
表 2‒20 EJB-JAR ファイル(EJB3.1/EJB3.0 対応)に記述できるアノテーション(javax.persistence パッケージ)
アノテーション名
Enterprise Bean
例 外 ク ラ ス
そ の 他 の ク ラ ス インタフェース Session Bean Entity Bean
Message-driven Bean
インター セプタ デ フ ォ ル ト イ ン タ ー セ プ タ 以 外
デ フ ォ ル ト イ ン タ ー セ プ タ
@PersistenceContex t
− ○ − × ○ ○ − −
@PersistenceContex ts
− ○ − × ○ ○ − −
@PersistencePropert y
− ○ − × ○ ○ − −
@PersistenceUnit − ○ − × ○ ○ − −
@PersistenceUnits − ○ − × ○ ○ − −
(凡例)
○:対応する。
×:アプリケーションサーバでは対応しない。
−:標準仕様で対応していない。
(d) ライブラリ JAR(サーブレット/JSP)
ライブラリ JAR のサーブレットまたは JSP に記述できるアノテーションの一覧を示します。
表 2‒21 ライブラリ JAR(サーブレット/JSP)に記述できるアノテーション(javax.persistence パッ ケージ)
アノテーション名
Servlet 仕様 JSP 仕様
サーブ レット
サーブ レット
(API)
サーブ レット フィル タ
サーブ レット フィル タ
(API)
イベン トリス ナ
イベン トリス ナ
(API)
JSP ファイ
ル
タグハンドラ タグラ イブラ リイベ ントリ スナ クラ
シック タグハ ンドラ
シンプ ルタグ ハンド ラ
@PersistenceContext − − ○ − ○ − − ○ ○ ×
@PersistenceContexts − − ○ − ○ − − ○ ○ ×
@PersistenceProperty − − ○ − ○ − − ○ ○ ×
@PersistenceUnit − − ○ − ○ − − ○ ○ ×
@PersistenceUnits − − ○ − ○ − − ○ ○ ×
(凡例)
○:対応する。
×:アプリケーションサーバでは対応しない。
−:標準仕様で対応していない。
(e) ライブラリ JAR(Enterprise Bean/例外クラス/その他のクラス)
ライブラリ JAR の Enterprise Bean,例外クラス,またはその他のクラスに記述できるアノテーションの 一覧を示します。
表 2‒22 ライブラリ JAR(Enterprise Bean/例外クラス/その他のクラス)に記述できるアノテーション
(javax.persistence パッケージ)
アノテーション名
Enterprise Bean
例外クラス インタ
フェース
Session Bean
Entity Bean
Message-driven
Bean
インターセ プタ
@PersistenceContext − − − × ○ −
@PersistenceContexts − − − × ○ −
@PersistenceProperty − − − × ○ −
@PersistenceUnit − − − × ○ −
@PersistenceUnits − − − × ○ −
(凡例)
○:対応する。
×:アプリケーションサーバでは対応しない。
−:標準仕様で対応していない。
(2) JPA プロバイダに依存しないアノテーションの場合
JPA プロバイダに依存しないアノテーションは,ファイルの種類に関係なく,エンティティクラス内に記述 できます。
javax.persistence パッケージに含まれるアノテーションの一覧については, 「2.7 javax.persistence パッケージ」のアノテーション一覧を参照してください。