Cosminexus アプリケーションサーバ V8 リファレンス API編

[目次][索引][前へ][次へ]

2.6.37 @OneToOne

<この項の構成>
(1) 説明
(2) 属性

(1) 説明

指定されたクラスがOneToOneリレーションシップであることを示し,エンティティクラス間の一つの関連を指定するアノテーションです。

双方向の関係にする場合は,非所有者側に必ずmappedBy属性を指定してください。

適用可能要素は,メソッドとフィールドです。

(2) 属性

@OneToOneの属性の一覧を次の表に示します。

属性名 任意/必須 属性の説明
targetEntity 任意 被所有者側のエンティティクラスを指定する属性です。
cascade 任意 カスケード対象となるオペレーションを指定する属性です。
fetch 任意 フェッチ戦略の指定値を指定する属性です。
optional 任意 すべての非プリミティブ型のフィールドおよびプロパティの値にnull値を設定できるかどうかを指定する属性です。
mappedBy 任意 被所有者側のエンティティクラスの要素に付与し,所有者側のエンティティクラスで関係を保持しているフィールド名を指定する属性です。

Cosminexus JPAプロバイダで対応する属性の詳細を次に示します。

(a) targetEntity属性

Class

説明
被所有者側のエンティティクラスを指定する属性です。

デフォルト値
アノテーションが付与されているフィールドやプロパティの型
(b) cascade属性

CascadeType[]

説明
カスケード対象となるオペレーションを指定する属性です。
指定できる値を次に示します。
  • CascadeType.ALL:所有者側のエンティティクラスのpersist,remove,merge,refreshの操作が関連先にカスケードされます。
  • CascadeType.MERGE:所有者側のエンティティクラスのmerge操作が関連先にカスケードされます。
  • CascadeType.PERSIST:所有者側のエンティティクラスのpersist操作が関連先にカスケードされます。
  • CascadeType.REFRESH:所有者側のエンティティクラスのrefresh操作が関連先にカスケードされます。
  • CascadeType.REMOVE:所有者側のエンティティクラスのremove操作が関連先にカスケードされます。

デフォルト値
カスケード対象なし
(c) fetch属性

FetchType

説明
データベースからのデータのフェッチ戦略を定義する属性です。フェッチ戦略については,マニュアル「Cosminexus アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「6.4.5 データベースとの同期」を参照してください。
指定できる値は,次の2種類です。
  • EAGER戦略:データがEAGERにフェッチされなければならない要求
  • LAZY戦略:データが最初にアクセスされるときに,LAZYにフェッチされる要求

デフォルト値
FetchType.EAGER
(d) optional属性

boolean

説明
すべての非プリミティブ型のフィールドおよびプロパティの値にnull値を指定できるかどうかを指定する属性です。指定できる値は,次のとおりです。
  • true:すべての非プリミティブ型のフィールドおよびプロパティの値にnull値を設定できます。
  • false:すべての非プリミティブ型のフィールドおよびプロパティの値にnull値を指定できません。

デフォルト値
true
(e) mappedBy属性

String

説明
被所有者側のエンティティクラスの要素に付与し,所有者側のエンティティクラスで関係を保持しているフィールド名を指定します。指定した場合,関係は双方向になります。

デフォルト値
なし