Oracle® Fusion Middleware Oracle TopLink Java Persistence API (JPA)拡張機能リファレンス 12c (12.1.2) E48005-01 |
|
前 |
次 |
@Noncacheable
を使用して、リレーションシップのキャッシュ動作を構成します。リレーションシップで使用される場合、親エンティティがキャッシュされても、そのリレーションシップはキャッシュされません。
注釈要素
この注釈の要素はありません。
使用方法
EclipseLinkがエンティティを取得するたびに、リレーションシップはデータソースからリロードされます。リレーションシップのキャッシングが望ましくない状況において、または、異なるEclipseLinkキャッシュ・タイプを使用したり、参照をキャッシュしていることによって、異なるキャッシュ・スキームを使用する関連エンティティのキャッシュ存続期間が延長される場合に、このことが役立つことがあります。たとえば、エンティティAはエンティティBを参照し、エンティティAはFullで、エンティティBはWeakになります。リレーションシップのキャッシングを削除しない場合、エンティティBのキャッシュは、実質的にFullになります。
例
例2-76に、@Noncacheable
を使用して保護されたキャッシュを作成する方法を示します。
例2-76 @Noncacheable注釈の使用
@Entity
@Cache(
isolation=CacheIsolationType.PROTECTED
)
public class Employee {
@Id
private long id;
...
@OneToMany(mappedBy="manager")
@Noncacheable
private List<Employee> managedEmployees;
...
}
例2-77に、eclipselink-orm.xml
ファイルの<noncacheable>
XML要素の使用を示します。
例2-77 <noncacheable> XMLの使用
<?xml version="1.0"?>
<entity-mappings
xmlns="http://www.eclipse.org/eclipselink/xsds/persistence/orm"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.eclipse.org/eclipselink/xsds/persistence/orm http://www.eclipse.org/eclipselink/xsds/eclipselink_orm_2_4.xsd"
version="2.4">
<entity name="Employee" class="org.acme.Employee" access="FIELD">
<cache isolation="PROTECTED"/>
<attributes>
<id name= "id"/>
<one-to-many name="managedEmployees" mapped-by="manager">
<noncacheable/>
</one-to-many>
</attributes>
</entity>
</entity-mappings
関連項目
詳細は、次を参照してください。
『Oracle TopLinkの理解』のTopLinkキャッシュに関する項
『Oracle TopLinkソリューション・ガイド』のクラスタ内のTopLinkアプリケーションのスケーリングに関する項