| Oracle® Fusion Middleware Oracle TopLink Java Persistence API (JPA)拡張機能リファレンス 12c (12.1.2) E48005-01 |
|
![]() 前 |
![]() 次 |
索引は、表に対して定義されるデータベース構造であり、これにより一連の列に対する問合せと検索のパフォーマンスが向上します。eclipselink-orm.xmlディスクリプタ内のコードまたは<index>要素で@Index注釈を使用して、表に索引を作成します。
エンティティまたは属性で索引を定義できます。エンティティの場合、索引に対して一連の列を定義する必要があります。
索引の作成はデータベース固有です。一部のデータベースは索引をサポートしていない可能性があります。ほとんどのデータベースでは、主キーと外部キーの列が自動的に索引付けされます。一部のデータベースでは、高度な索引DDLオプションがサポートされています。より高度な索引DDLを作成するために、DDLスクリプトまたはネイティブ問合せを使用できます。
注釈要素
表2-26は、この注釈の要素を示しています。
表2-26 @Indexの注釈要素
| 注釈要素 | 説明 | デフォルト |
|---|---|---|
|
|
(オプション) |
デフォルトのカタログ |
|
|
(フィールド/メソッドに注釈が付けられている場合は不要)索引を定義する一連の列を指定します。 |
エンティティの場合は、なし。 属性の場合は、その属性の列。 |
|
|
(オプション) |
|
|
|
(オプション) |
デフォルトのスキーマ |
|
|
(オプション)索引を定義する表。デフォルトはエンティティのプライマリ表です。 |
エンティティのプライマリ表。 |
|
|
(オプション)索引が一意か、または非一意であるかを指定します。 |
|
使用方法
@Index注釈を使用して、問合せでよく使用される任意の属性または列の索引を作成します。
例
この例では、名に1つ、姓に1つ、および名と姓に複数列の索引、という3つの索引を定義します。
例2-48 @Index注釈の使用
@Entity @Index(name="EMP_NAME_INDEX", columns={"F_NAME","L_NAME"}) public class Employee{ @Id private long id; @Index @Column(name="F_NAME") private String firstName; @Index @Column(name="L_NAME") private String lastName; ... }
次の例に示すように、<index>を使用してeclipselink-orm.xmlディスクリプタに索引を作成することもできます。<column>サブ要素を使用して列を定義します。@Index注釈でサポートされるすべての属性は、<index>要素でもサポートされます。
例2-49 <index> XMLの使用
<index name="EMP_NAME_INDEX" table="EMPLOYEE" unique="true"> <column>F_NAME</column> <column>L_NAME</column> </index>
関連項目
詳細は、次のドキュメントを参照してください。