Comment définir un champ, par exemple email
comme ayant un index utilisant les annotations JPA. Nous avons besoin d'une clé non-unique sur email
parce qu'il y a littéralement des millions de requêtes sur ce champ par jour, et c'est un peu lent sans la clé.
@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;
}
J'ai vu une annotation spécifique à Hibernate, mais j'essaie d'éviter les solutions spécifiques aux fournisseurs, car nous sommes encore en train de choisir entre Hibernate et Datanucleus.
6 votes
Ce serait formidable si vous pouviez mettre à jour la réponse pour que les gens sachent qu'il existe un moyen de le faire avec JPA 2.1.
2 votes
Pourquoi n'acceptez-vous pas la réponse la plus votée ?