| Oracle® Fusion Middleware Oracle TopLink Java Persistence API (JPA)拡張機能リファレンス 12c (12.1.2) E48005-01 |
|
![]() 前 |
![]() 次 |
@CacheIndexを使用して、キャッシュされる索引を定義します。キャッシュ索引は、キャッシングが有効なときにのみ使用されます。
注釈要素
表2-5は、この注釈の要素を示しています。
表2-5 @CacheIndexの注釈要素
| 注釈要素 | 説明 | デフォルト |
|---|---|---|
|
|
(オプション)索引を定義する一連の列。フィールド/メソッドに注釈が付けられている場合は不要です。 |
|
|
|
(オプション)索引付きのフィールドが更新可能かどうかを指定します。
|
true |
使用方法
キャッシュ索引により、索引付きのフィールドで問合せするときに、singleResult問合せでキャッシュ・ヒットを取得できます。すべてのオブジェクトがメモリー内にあるかどうかは不明なため(キャッシュ使用率の問合せヒントが使用されない場合)、resultList問合せではキャッシュ・ヒットを取得できません。
索引は、一意である必要があります。一意でない場合、最初の索引付きオブジェクトが戻されます。
エンティティ・クラスまたは属性で@CacheIndexを使用できます。属性で定義される場合、列がデフォルトに設定されます。
例
例2-13に、@CacheIndex注釈の使用例を示します。
例2-13 @CacheIndex注釈の使用
@Entity
@CacheIndex(columnNames={"F_NAME", "L_NAME"}, updateable=true)
public class Employee {
@Id
private long id;
@CacheIndex
private String ssn;
@Column(name="F_NAME")
private String firstName;
@Column(name="L_NAME")
private String lastName;
}
例2-14に、eclipselink-orm.xmlファイルの<cache-index> XML要素の使用例を示します。
例2-14 <cache-index> 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-index updateable="true">
<column-name>F_NAME</column-name>
<column-name>L_NAME</column-name>
</cache-index>
<attributes>
<id name="id"/>
<basic name="ssn">
<cache-index/>
</basic>
<basic name="firstName">
<column name="F_NAME"/>
</basic>
<basic name="lastName">
<column name="L_NAME"/>
</basic>
</attributes>
</entity>
</entity-mappings>
例2-15に、キャッシュ索引を使用する問合せの例を示します。
例2-15 索引問合せのキャッシング
Query query = em.createQuery("Select e from Employee e where e.firstName = :firstName and e.lastName = :lastName");
query.setParameter("firstName", "Bob");
query.setParameter("lastName", "Smith");
Employee employee = (Employee)query.getSingleResult();
関連項目
詳細は、次を参照してください。
『Oracle TopLinkの理解』のキャッシュ索引に関する項