ヘッダーをスキップ
Oracle® Fusion Middleware Oracle TopLink Java Persistence API (JPA)拡張機能リファレンス
12c (12.1.2)
E48005-01
  目次へ移動
目次

前
 
次
 

persistence-context.reference-mode

eclipselink.persistence-context.reference-modeを使用して、永続性コンテキスト内でハード参照とソフト(つまり弱い)参照のどちらを使用するかを指定します。

表5-80は、この永続性プロパティの値を説明しています。

表5-80 persistence-context.reference-modeの有効値

Value 説明

hard

(デフォルト) TopLinkにより、ハード参照を使用してすべてのオブジェクトが参照されます。参照アーティファクト(永続性コンテキストや作業ユニットなど)を解放、消去または閉じるまで、これらのオブジェクトをガベージ・コレクションに使用することはできません

weak

アクティブ属性の変更追跡(「@ChangeTracking」を参照)をサポートするオブジェクトへの参照は、参照によって保持されます。つまり、直接的または間接的に参照されなくなったすべてのオブジェクトは、ガベージ・コレクションに使用できるようになります。変更追跡の対象オブジェクトが変更されると、該当するオブジェクトはハード参照に移動され、フラッシュされるまでガベージ・コレクションに使用できなくなります。

注意: これらのエンティティ内でフラッシュされなかった変更は、すべて失われます。

アクティブ属性の変更追跡をサポートしないオブジェクトに加えて、新規および削除されたオブジェクトもハード参照によって保持され、ガベージ・コレクションに使用することはできません。

force_weak

変更追跡の対象外であるオブジェクトを含むすべてのオブジェクトは、参照によって保持されます。変更追跡の対象オブジェクト(「@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);

関連項目

詳細は、次を参照してください。