¿Cómo se define un campo, por ejemplo, email
que tiene un índice utilizando anotaciones JPA? Necesitamos una clave no única email
porque hay literalmente millones de consultas en este campo por día y es un poco lento sin la clave.
@Entity
@Table(name="person",
uniqueConstraints=@UniqueConstraint(columnNames={"code", "uid"}))
public class Person {
// Unique on code and uid
public String code;
public String uid;
public String username;
public String name;
public String email;
}
He visto una anotación específica de hibernación, pero estoy tratando de evitar soluciones específicas de proveedores, ya que todavía estamos decidiendo entre hibernación y núcleo de datos.
ACTUALIZAR:
A partir de JPA 2.1, puede hacer esto. Ver: La anotación @Index no está permitida para esta ubicación.