Notice: this Wiki will be going read only early in 2024 and edits will no longer be 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"
m |
m |
||
Line 10: | Line 10: | ||
}} | }} | ||
<source lang="java"> | <source lang="java"> | ||
+ | // Need code sample. | ||
</source> | </source> | ||
Revision as of 11:45, 31 January 2011
EclipseLink JPA
EclipseLink | |
Website | |
Download | |
Community | |
Mailing List • Forums • IRC • mattermost | |
Issues | |
Open • Help Wanted • Bug Day | |
Contribute | |
Browse Source |
Key API
// Need code sample.
@Index Annotation and <index> XML
This section is in progress...
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 desciptor 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 | ? | false | No |
The @Index annotation creates an IndexDefinition and stores it on the descriptor's DatabaseTable. During default schema generation the DefaultSchemaGenerator adds the IndexDefinition to the TableDefinition to be created. The IndexDefinition is used to create indexes for primary key and unique constraints. Support for indexes is defined in the platform. By default a platform is assumed to support indexes. MySQL requires special drop syntax to include the table name in the drop statement.
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>