Як ви визначаєте поле, наприклад 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 заборонена для цього розташування