小编典典

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

hibernate

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

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

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

我在@Index这里添加注释

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

然后删除表并重新启动Tomcat服务器。实例化服务器后,创建了表,但是在以下查询中看不到新索引。

SHOW INDEX FROM tableName

预期用新索引构造表。我在MySQL中使用InnoDB。


阅读 1197

收藏
2020-06-20

共1个答案

小编典典

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

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

但是,我制作了hibernate.hbm2ddl.auto=create一个在每次webapp实例时都重新创建数据库的程序,它删除了我的所有数据库并重新构建,并且-
是的,我的新索引已创建!

2020-06-20