В моем сценарии у меня есть сценарий генерации схемы для создания таблиц и требуемых индексов. Мне интересно, есть ли необходимость в определении аннотации @Index
в судах спящего режима, если да, то почему?Hibernate: Когда использовать аннотацию @Index
Сценарий:
create table issues (id, project_id, .., status_id)
create index idx_issues_projid on issues (project_id)
Сущность:
@Table(name="issues")
public class DBIssue {
..
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "PROJECT_ID")
@Index(name="INDEX_TFW_ISSUE_PROJECT_ID")
private DBProject project;
}
спящий режим конфигурации:
<property name="hibernate.hbm2ddl.auto">off</property>
Я понимаю это, но если У меня уже есть индекс, созданный в базе данных по требуемым столбцам.Есть ли какая-либо выгода в настройке того же типа в спящем режиме? Если я опускаю эту аннотацию, есть ли недостаток? – harsh
В этой аннотации сообщается, что Hibernate (или поставщик JPA 2.1) создает индекс, когда он генерируя схему. Нет необходимости включать ее в свой код, но это хорошая документация и гарантирует, что если вам когда-нибудь понадобится восстановить DDL, индекс будет автоматически подключен. – chrylis