2.1.6 javax.persistenceパッケージに含まれるアノテーションのサポート範囲

javax.persistenceパッケージのアノテーションは,JPAプロバイダに依存する場合としない場合で記述できるコンポーネントが異なります。ここでは,JPAプロバイダに依存するアノテーションとJPAプロバイダに依存しないアノテーションに分けて説明します。

<この項の構成>
(1) JPAプロバイダに依存するアノテーションの場合
(2) JPAプロバイダに依存しないアノテーションの場合

(1) JPAプロバイダに依存するアノテーションの場合

JPAプロバイダに依存するアノテーションの適用範囲を説明します。ここでは,コンポーネントごとに記述できるアノテーションを説明します。

(a) WARファイル(Servlet 3.0対応)

WARファイルに記述できるアノテーションの一覧を示します。

表2-18 WARファイル(Servlet 3.0対応)に記述できるアノテーション(javax.persistenceパッケージ)

アノテーション名Servlet仕様JSP仕様例外クラスManagedBean(JSF)その他のクラス
サーブレットサーブレット(API)サーブレットフィルタサーブレットフィルタ(API)イベントリスナイベントリスナ(API)JSPファイルタグハンドラタグライブラリイベントリスナ
クラシックタグハンドラシンプルタグハンドラ
@PersistenceContext×
@PersistenceContexts×
@PersistenceProperty×
@PersistenceUnit×
@PersistenceUnits×
(凡例)
○:対応する。
×:アプリケーションサーバでは対応しない。
-:標準仕様で対応していない。

(b) WARファイル(Servlet 2.5対応)

WARファイルに記述できるアノテーションの一覧を示します。

表2-19 WARファイル(Servlet 2.5対応)に記述できるアノテーション(javax.persistenceパッケージ)

アノテーション名Servlet仕様JSP仕様その他のクラス
サーブレットサーブレットフィルタイベントリスナJSPファイルタグハンドラタグライブラリイベントリスナ
クラシックタグハンドラシンプルタグハンドラ
@PersistenceContext×
@PersistenceContexts×
@PersistenceProperty×
@PersistenceUnit×
@PersistenceUnits×
(凡例)
○:対応する。
×:アプリケーションサーバでは対応しない。
-:標準仕様で対応していない。

(c) EJB-JARファイル(EJB3.1/EJB3.0対応)

EJB-JARファイルに記述できるアノテーションの一覧を示します。

表2-20 EJB-JARファイル(EJB3.1/EJB3.0対応)に記述できるアノテーション(javax.persistenceパッケージ)

アノテーション名Enterprise Bean例外クラスその他のクラス
インタフェースSession BeanEntity BeanMessage-driven Beanインターセプタ
デフォルトインターセプタ以外デフォルトインターセプタ
@PersistenceContext×
@PersistenceContexts×
@PersistenceProperty×
@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 BeanEntity BeanMessage-driven Beanインターセプタ
@PersistenceContext×
@PersistenceContexts×
@PersistenceProperty×
@PersistenceUnit×
@PersistenceUnits×
(凡例)
○:対応する。
×:アプリケーションサーバでは対応しない。
-:標準仕様で対応していない。

(2) JPAプロバイダに依存しないアノテーションの場合

JPAプロバイダに依存しないアノテーションは,ファイルの種類に関係なく,エンティティクラス内に記述できます。

javax.persistenceパッケージに含まれるアノテーションの一覧については, 「2.7 javax.persistenceパッケージ」のアノテーション一覧を参照してください。