| Oracle® Fusion Middleware Oracle TopLink Java Persistence API (JPA)拡張機能リファレンス 12c (12.1.2) E48005-01 |
|
![]() 前 |
![]() 次 |
@PrivateOwnedを使用して、リレーションシップが私有されることを指定します。ターゲット・オブジェクトは、ソース・オブジェクトの依存部分であり、その他のオブジェクトから参照されず、単独では存在できません。
注釈要素
@PrivateOwned注釈に属性はありません。
使用方法
@PrivateOwnedを使用すると、多くの操作が、削除、挿入、リフレッシュ、ロック(カスケードされる場合)を含むリレーションシップ間でカスケードされます。コレクションから除去されるプライベート・オブジェクトが削除され、追加されるオブジェクトが挿入されたことも確認します。
@OneToOne、@OneToManyおよび@VariableOneToOne注釈とともに@PrivateOwnedを指定できます。私有は、@BasicCollectionおよび@BasicMap注釈で暗黙的に示されます。
参照先のオブジェクトが私有されている場合、参照先の子オブジェクトは親オブジェクトなしでは存在できません。
追加情報
リレーションシップが私有されていることを示すと、次のことを示していることになります。
私有されたリレーションシップのソースが削除されると、Oracle TopLinkはターゲットを削除します。これは、@CascadeOnDeleteの設定に相当します。
ソースからのターゲットの参照が削除されると、Oracle TopLinkはターゲットを削除します。
通常、共有される可能性のあるオブジェクトに私有されたリレーションシップは構成しないでください。オブジェクトがプライベートに所有されたリレーションシップでターゲットになっている場合は、そのオブジェクトを複数のリレーションシップでターゲットにしないでください。
|
注意: 私有されたオブジェクトへの参照を「クリーンアップ」することはアプリケーションの責任になるため、私有されたオブジェクトを参照すると望ましくない影響が生じる可能性があります。 オブジェクトを参照解除して削除すると、削除されたオブジェクトを引き続き参照するキャッシュ内のその他のオブジェクトによって制約違反が発生したり、オブジェクトが復活したり(カスケード永続化を使用する場合)、データベースの内容が反映されなくなる可能性があります。 |
例
例2-93に、@PrivateOwnedを使用してEmployeeフィールドのphoneNumbers.を指定する方法を示します。
例2-93 @PrivateOwned注釈の使用
@Entity
public class Employee implements Serializable {
...
@OneToMany(cascade=ALL, mappedBy="employee")
@PrivateOwned
public Collection<PhoneNumber> getPhoneNumbers() {
return phoneNumbers;
}
...
}
関連項目
詳細は、次を参照してください。