注釈の有効範囲と配置

クラス、メソッド、およびフィールドのレベルでソース・コードに注釈を追加することができます。

注釈の使用

EJB 3.1 および Java™ Persistence API はメタデータ注釈を使用します。これは、J2SE 5.0 で導入されたフィーチャーです。注釈は、注釈タイプの前に付けられる @ 記号から構成され、その後に、要素と値が対になった括弧付きのリストが続くものもあります。 EJB 3.1 の仕様では、各種の注釈型が定義されます。例:
  • コンポーネント定義の注釈。例: @Stateless。Bean タイプを指定します。
  • @Remote および @Local は、Bean がリモートにアクセス可能なのか、ローカルにアクセス可能なのかを指定します。
  • @TransactionAttribute は、トランザクション属性を指定します。
  • @MethodPermissions@Unchecked、および @SecurityRoles は、セキュリティーとメソッド・アクセス権を指定します。
Java Persistence API は、エンティティーの作成に固有の注釈を追加します。例:
  • @Entity は、クラスがエンティティーであると指定する、コンポーネント定義の注釈です。
  • @Table は、クラスで使用するデータ・ソースを指定します。
注: JPA マッピング注釈 (例えば @Id@Column など) は、フィールドとメソッドの両方に適用できますが、エンティティー・クラスの場合は、いずれか一方にしか適用できません。つまり、すべての注釈をフィールドに適用するか、すべてをメソッドに適用するかのいずれかです。 フィールドは private な可視性、保護された可視性、パッケージの可視性のいずれかしか持てず、エンティティーのクライアントは、このフィールドに直接アクセスすることは許可されません。このため、public の getter および setter を定義する必要があります。

注釈の有効範囲と配置

注釈は、クラス、インターフェース、メソッド、またはインターフェースで、メソッドまたはフィールドのレベルで作動します。 例えば、コンポーネント定義の注釈 (@Stateless@Entity など) はクラス・レベルの注釈で、次のようにクラス宣言の前のコメント・セクションに挿入されます。
package com.ibm.websphere.ejb3sample.counter;

import javax.ejb.Stateless;
import javax.interceptor.Interceptors;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

@Stateless
@Interceptors ( Audit.class )

public class StatelessCounterBean implements LocalCounter, RemoteCounter {
これらの注釈の順序には重要性がありません。コンポーネント定義の注釈が他の注釈の前に置かれますが、これが必須というわけではありません。メソッド・レベルとフィールド・レベルの注釈は、次のように、クラスまたはメソッドの内部に置かれます。
public class JPACounterEntity {

    @Id
    private String primarykey = "PRIMARYKEY";

    private int value = 0;
トピックのタイプを示すアイコン 概念のトピック
インフォメーション・センターのご利用条件 | フィードバック

タイム・スタンプ・アイコン 最終更新: May 29, 2014 10:20

ファイル名: cusingannotations.html