Comment définir un champ, par exemple email
comme ayant un index utilisant des annotations JPA. Nous avons besoin d'une clé non unique email
car 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 à l'hibernation, mais j'essaie d'éviter les solutions spécifiques au fournisseur car nous sommes toujours en train de décider entre l'hibernation et le datanucleus.
METTRE À JOUR:
Depuis JPA 2.1, vous pouvez le faire. Voir: l'annotation @Index n'est pas autorisée pour cet emplacement