Hitachi

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


8.6.3 リレーションシップの方向

リレーションシップには,双方向のリレーションシップと単方向のリレーションシップがあります。双方向のリレーションシップを扱う場合,リレーションシップには所有者と被所有者があります。単方向のリレーションシップには所有者だけがあります。リレーションシップの所有者は,データベースのリレーションシップの更新を決定できます。

双方向のリレーションシップでは,次のルールが適用されます。

リレーションシップのアノテーションにはcascade属性があります。cascade属性を指定すると,エンティティに対する操作を参照先のエンティティに対しても伝播させることができます。ただし,リレーションシップのアノテーションのcascade属性にREMOVEを指定できるのは,OneToOneまたはOneToManyのときだけです。ほかのリレーションに対してcascade=REMOVEを適用した場合の動作は保証しません。エンティティがリレーションシップを持つ場合のcascade属性については,「8.4.1(4) エンティティに対する操作の伝播」を参照してください。

注意事項

CJPAプロバイダでは,実行時のリレーションシップの一貫性を保つためのチェックは実施しません。このため,アプリケーションの実行時にリレーションシップを更新する場合に,リレーションシップに矛盾が発生するような更新を行っても,警告や例外は発生しません。

なお,OneToMany,ManyToManyなどのコレクションのリレーションシップでは,データベースから値をフェッチした場合に,関連するエンティティが存在しないときには,リレーションシップの値として空のコレクションを返します。