Как вы определяете поле, например, email
как имеющее индекс, используя аннотации JPA. Нам нужен неуникальный ключ, email
потому что в этом поле буквально миллионы запросов в день, а без ключа это немного медленнее.
@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;
}
Я видел аннотацию, относящуюся к спящему режиму, но я стараюсь избегать решений от конкретных поставщиков, поскольку мы все еще выбираем между спящим режимом и ядром данных.
ОБНОВИТЬ:
Начиная с JPA 2.1, вы можете это сделать. См .: Аннотация @Index не разрешена для этого местоположения