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の理解』のキャッシュ索引に関する項