在我的场景中,我有一个模式生成脚本来创建表和所需的索引。我想知道是否需要定义 @Index
hibernate 实体中的注释也是如此,如果是,为什么?
脚本:
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 配置:
<property name="hibernate.hbm2ddl.auto">off</property>
最佳答案
我假设您问的是 Hibernate @Index
批注,该批注基本上已导入到 JPA 2.1 中。您可以在任何地方使用 @Index
,否则您会主动告诉关系数据库为列编制索引,主要是在您知道将进行大量查找的字段上。在这种情况下,例如,您可能希望“经常选择属于特定 DBProject
的 DBIssue
,因此在包含 DBIssue
的表。
关于java - Hibernate:何时使用@Index 注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19003334/