Как определить поле, например, 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 запрещена для этого местоположения