Oracle® Fusion Middleware Oracle TopLink Java Persistence API (JPA)拡張機能リファレンス 12c (12.1.2) E48005-01 |
|
![]() 前 |
![]() 次 |
eclipselink.persistence-context.reference-mode
を使用して、永続性コンテキスト内でハード参照とソフト(つまり弱い)参照のどちらを使用するかを指定します。
値
表5-80は、この永続性プロパティの値を説明しています。
表5-80 persistence-context.reference-modeの有効値
Value | 説明 |
---|---|
|
(デフォルト) TopLinkにより、ハード参照を使用してすべてのオブジェクトが参照されます。参照アーティファクト(永続性コンテキストや作業ユニットなど)を解放、消去または閉じるまで、これらのオブジェクトをガベージ・コレクションに使用することはできません |
|
アクティブ属性の変更追跡(「@ChangeTracking」を参照)をサポートするオブジェクトへの参照は、弱参照によって保持されます。つまり、直接的または間接的に参照されなくなったすべてのオブジェクトは、ガベージ・コレクションに使用できるようになります。変更追跡の対象オブジェクトが変更されると、該当するオブジェクトはハード参照に移動され、フラッシュされるまでガベージ・コレクションに使用できなくなります。 注意: これらのエンティティ内でフラッシュされなかった変更は、すべて失われます。 アクティブ属性の変更追跡をサポートしないオブジェクトに加えて、新規および削除されたオブジェクトもハード参照によって保持され、ガベージ・コレクションに使用することはできません。 |
|
変更追跡の対象外であるオブジェクトを含むすべてのオブジェクトは、弱参照によって保持されます。変更追跡の対象オブジェクト(「@ChangeTracking」を参照)が変更されると、該当するオブジェクトはハード参照に移動され、フラッシュされるまでガベージ・コレクションに使用できなくなります。ただし、アクティブ属性の変更追跡をサポートしないすべてのオブジェクトは、それらの変更がデータベースにフラッシュされる前にガベージ・コレクトされる場合があるため、変更が失われる可能性があります。 新規および削除されたオブジェクトはハード参照によって保持され、ガベージ・コレクションに使用することはできません。 |
使用方法
このプロパティをpersistence.xml
に設定するか、またはcreateEntityManagerFactory
に渡すと、ファクトリによって作成されるすべてのEntityManagers
に影響を及ぼします。このプロパティを特定のEntityManagers
に適用するには、createEntityManager
メソッドに渡します。
例
例5-79に、persistence.xml
ファイルでこのプロパティを使用する方法を示します。
例5-79 persistence.xmlでのpersistence-context.reference-modeの使用
<property name="eclipselink.persistence-context.reference-mode" value="FORCE_WEAK"/>
例5-79に、プロパティ・マップでこのプロパティを使用する方法を示します。
例5-80 プロパティ・マップでのpersistence-context.reference-modeの使用
import org.eclipse.persistence.config.PersistenceUnitProperties; propertiesMap.put(PersistenceUnitProperties.PERSISTENCE_CONTEXT_REFERENCE_MODE, ReferenceMode.FORCE_WEAK);
関連項目
詳細は、次を参照してください。