在我的场景中,我有一个模式生成脚本来创建表和所需的索引。我想知道是否还需要在 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;
}

hibernate 配置:

最佳答案

我想您是在询问有关Hibernate @Index批注的信息,该批注实际上已导入到JPA 2.1中。您可以在任何其他地方会主动告诉关系数据库为列建立索引的地方使用@Index,主要是在您知道将要进行大量查找的字段上使用。例如,在这种情况下,您可能需要经常选择“属于特定DBIssueDBProject,因此在包含DBIssue的表中对该列进行索引将很有意义。

10-07 19:12
查看更多