Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 互換編


8.22.29 @ManyToOne

〈この項の構成〉

(1) 説明

@ManayToOneが指定されたクラスがManyToOneリレーションシップであることを示し,所有者側のエンティティクラスから被所有者側のエンティティクラスへの関連を指定するアノテーションです。

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

(2) 属性

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

属性名

任意/必須

属性の説明

targetEntity

任意

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

cascade

任意

カスケード対象となるオペレーションを指定する属性です。

fetch

任意

フェッチ戦略の指定値を指定する属性です。

optional

任意

すべての非プリミティブ型のフィールドおよびプロパティの値にnull値を設定できるかどうかを指定する属性です。

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

(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

説明

データベースからのデータのフェッチ戦略を定義する属性です。フェッチ戦略については,「8.4.5 データベースとの同期」を参照してください。

指定できる値は,次の2種類です。

  • EAGER戦略:データがEAGERにフェッチされなければならない要求

  • LAZY戦略:データが最初にアクセスされるときに,LAZYにフェッチされる要求

デフォルト値

FetchType.EAGER

(d) optional属性

boolean

説明

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

  • true:すべての非プリミティブ型のフィールドおよびプロパティの値にnull値を設定できます。

  • false:すべての非プリミティブ型のフィールドおよびプロパティの値にnull値を指定できません。

デフォルト値

true