ヘッダーをスキップ
Oracle® Fusion Middleware Oracle TopLink Java Persistence API (JPA)拡張機能リファレンス
12c (12.1.2)
E48005-01
  目次へ移動
目次

前
 
次
 

@PrimaryKey

@PrimaryKeyを使用して、IDの拡張構成を可能にします。

検証ポリシーを指定して、ゼロが有効なID値かどうかを指定できます。主キー列のセットも明確に指定できます。

注釈要素

表2-53は、この注釈の要素を示しています。

表2-53 @PrimaryKeyの注釈要素

注釈要素 説明 デフォルト

cacheKeyType

(オプション)キャッシュにオブジェクトを格納するキャッシュ・キー・タイプを構成します。

AUTO

columns

(オプション)主キー列を直接指定します。主キーに外部キー、継承識別子フィールド、埋込みフィールド、トランスフォーメーション・マップ済フィールドなどの基本以外のフィールドが含まれる場合、@Idのかわりに使用できます。


validation

(オプション)実行されるID検証を構成します。

  • NULL: EclipseLinkは、0の値を0として解釈します。この設定により、主キーで0の値を使用できます。

  • ZERO (デフォルト): EclipseLinkは、0をnullとして解釈します。

  • NEGATIVE: EclipseLinkは、負の値をnullとして解釈します。

  • NONE: EclipseLinkは、ID値を検証しません。

デフォルトでは、0は有効なID値ではなく、0 ID値を可能にするために使用できます。

ZERO


使用方法

デフォルトで、EclipseLinkは、nullを使用できないプリミティブ型(intlongなど)で0をnullとして解釈するため、0は主キーにとって無効な値となります。@PrimaryKey注釈を使用してエンティティ・クラスに対してIdValidationを構成することによって、この設定を変更できます。eclipselink.id-validationプロパティを使用して、永続性ユニット全体に対してIdValidationを構成します。

validation要素を設定すると、TopLinkがIDを生成する方法にも影響します。新規IDは、無効なID(デフォルトでは、nullまたは0)に対してのみ生成されます。NONEに設定すると、IDの生成が無効になります。

例2-91に、この注釈を使用する方法を示します。

例2-91 @PrimaryKey注釈の使用

@PrimaryKey(validation=IdValidation.ZERO)
public class Employee implements Serializable, Cloneable {
...
}

例2-92に、eclipselink-orm.xmlファイルの<primary-key>要素を使用する方法を示します。

例2-92 @<primary-key> XMLの使用

<entity name="Employee" class="foo.Employee" access="PROPERTY">
   <primary-key validation="ZERO"/>
...
</entity>

関連項目

詳細は、次を参照してください。