Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
EclipseLink/UserGuide/JPA/Advanced JPA Development/Schema Generation/Index
< EclipseLink | UserGuide | JPA | Advanced JPA Development | Schema Generation
Revision as of 15:30, 1 February 2011 by Unnamed Poltroon (Talk)
EclipseLink JPA
EclipseLink | |
Website | |
Download | |
Community | |
Mailing List • Forums • IRC • mattermost | |
Issues | |
Open • Help Wanted • Bug Day | |
Contribute | |
Browse Source |
Key API
@Index Annotation and <index> XML
>>>>>>THIS PAGE IS IN PROGRESS. PLEASE SEE DISCUSSION PAGE.<<<<<<
An index is a database structure defined for a table, to improve query and look-up performance for a set of columns. Use the @Index annotation in code or the <index> element in the orm.xml descriptor to create an index on a table.
An index can be defined on an Entity or on an attribute. For the Entity it must define a set of columns to index.
Attribute | Description | Default | Required? |
---|---|---|---|
catalog | The catalog of the INDEX. | ? | No |
columnNames | Specify the set of columns to define the index on. | For an Entity , the table. For an attribute, the table and column. | Not required when annotated on a field or method. |
name | The name of the INDEX. | _<column>_INDEX (but a name should be provided) | No |
schema | The schema of the INDEX. | ? | No |
table | The table to define the index on, defaults to entities primary table. | The entity's primary table. | No |
unique | Specify whether the index is unique or non-unique. | false | No |
Configuration File
Create an index in orm.xml using <index>, as follows:
<index name="EMP_NAME_INDEX" table="EMPLOYEE" unique="true"> <column>F_NAME</column> <column>L_NAME</column> </index>
Example
Java
@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; ... }