Come si definisce un campo, ad esempio email
se ha un indice utilizzando le annotazioni JPA. Abbiamo bisogno di una chiave non univoca email
perché ci sono letteralmente milioni di query su questo campo al giorno, ed è un po 'lento senza la chiave.
@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;
}
Ho visto un'annotazione specifica di ibernazione ma sto cercando di evitare soluzioni specifiche del fornitore poiché stiamo ancora decidendo tra ibernazione e datanucleus.
AGGIORNARE:
A partire da JPA 2.1, puoi farlo. Vedere: L'annotazione @Index non è consentita per questa posizione