java - 使用 Hibernate @Index 注释在数据库上创建索引

标签 java hibernate annotations hibernate-annotations database-indexes

我的项目中有注解驱动的 hibernate 功能。

现在我想在列上创建索引。我当前的列定义是

@NotNull
@Column(name = "hash")
private String hash;

然后我在此处添加了 @Index 注释。

@NotNull
@Column(name = "hash")
@Index(name="hashIndex")
private String hash;

然后 DROP TABLE 并重新启动 Tomcat 服务器。服务器实例化后,表已创建,但我在以下查询中看不到新索引。

SHOW INDEX FROM tableName

希望用新的索引建表。我正在将 InnoDB 与 MySQL 结合使用。

最佳答案

有趣的是,在我的 Hibernate 配置中,我使用的是 hibernate.hbm2ddl.auto=update

这个修改现有的数据库。我正在手动删除表 tableName 并重新启动 Tomcat,表已构建但未创建索引。

但是,我制作了 hibernate.hbm2ddl.auto=create,它在每次 webapp 实例化时重新创建数据库,它删除了我所有的数据库并重建回来 - 哎呀 - 我的新索引已经已创建!

关于java - 使用 Hibernate @Index 注释在数据库上创建索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3533301/

相关文章:

symfony - 使用@Method注解有什么意义

java - 链接重载方法

javascript - 如何突出显示未通过 Struts2 验证的字段?

java - 如何声明 OneToMany 成员变量

java - Java 方法注释如何与方法覆盖结合使用?

java - 我收到“com.ibm.db2.jcc.am.SqlIntegrityConstraintViolationException : DB2 SQL Error: SQLCODE=-803, SQLSTATE=23505

java - NullPointerException:println 需要一条消息

java - 在不同的项目之间交叉链接java doc

hibernate - JBoss 7 Spring JPA + Hibernate 应用程序 : no transaction is in progress

java - Spring Boot Rest Controller 使用 Jackson 和 Hibernate 将 POJO 转换为 JSON 时出错