java - Hibernate:何时使用@Index 注释

标签 java sql oracle hibernate

在我的场景中,我有一个模式生成脚本来创建表和所需的索引。我想知道是否需要定义 @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,否则您会主动告诉关系数据库为列编制索引,主要是在您知道将进行大量查找的字段上。在这种情况下,例如,您可能希望“经常选择属于特定 DBProjectDBIssue,因此在包含 DBIssue 的表。

关于java - Hibernate:何时使用@Index 注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19003334/

相关文章:

java - 如何在 H2 中将周数格式化为所需格式

java - ARQoid SPARQL 查询中出现错误 java.lang.ExceptionInInitializerError

java - 我怎样才能写一个 Controller 而不把它变成上帝对象?

php - 子查询和主查询中的日期之前

mysql - 如何使用 INSERT INTO 查询一次插入多行

sql - 在 MS SQL Server 2005 中插入忽略?

sql - 如何处理 listagg() 函数中的异常

java - 检查距中心一定距离内有多少人

oracle - Oracle 管理员帐户(SYS 和 SYSTEM)的默认密码是什么?

sql - 在 Oracle 中重命名 View