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.
Difference between revisions of "EclipseLink/UserGuide/JPA/Advanced JPA Development/Schema Generation/Index"
< EclipseLink | UserGuide | JPA | Advanced JPA Development | Schema Generation
m |
|||
Line 15: | Line 15: | ||
An index is a database structure defined for a table, to improve query and look-up performance for a set of columns. | An index is a database structure defined for a table, to improve query and look-up performance for a set of columns. | ||
− | Use the <tt>@Index</tt> annotation in code or the <tt><index></tt> element in the <tt>orm.xml</tt> | + | Use the [http://www.eclipse.org/eclipselink/api/latest/org/eclipse/persistence/annotations/Index.html <tt>@Index</tt>] annotation in code or the <tt><index></tt> element in the <tt>orm.xml</tt> 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. | An index can be defined on an Entity or on an attribute. For the Entity it must define a set of columns to index. | ||
<source lang="java"> | <source lang="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; | ||
+ | ... | ||
+ | } | ||
</source> | </source> | ||
Line 63: | Line 75: | ||
</tr> | </tr> | ||
}} | }} | ||
− | |||
− | |||
− | |||
= Configuration File = | = Configuration File = |
Revision as of 15:25, 1 February 2011
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.
@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; ... }
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>