package io.ebean.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Repeatable;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

An annotation for declaring an index.
Author:rvbiljouw
/** * An annotation for declaring an index. * * @author rvbiljouw */
@Target({ElementType.TYPE, ElementType.FIELD}) @Retention(RetentionPolicy.RUNTIME) @Repeatable(Indices.class) public @interface Index {
Name of the index. If left blank a name is derived using the built in naming convention.
/** * Name of the index. If left blank a name is derived using the built in naming convention. */
String name() default "";
If set true indicates this is a unique index.
/** * If set true indicates this is a unique index. */
boolean unique() default false;
When placed on the class (rather than field) you can specify the columns to include in the index in order.

When placed on a field, and columnNames are specified, the field-column has to be included. You can use "${fa}" for alias.

/** * When placed on the class (rather than field) you can specify the columns * to include in the index in order. * <p> * When placed on a field, and columnNames are specified, the field-column has to be included. * You can use "${fa}" for alias. */
String[] columnNames() default {}; }