我的项目中有注释驱动的hibernate功能。
现在,我想在列上创建索引。我当前的列定义是
@NotNull @Column(name = "hash") private String hash;
我在@Index这里添加注释
@Index
@NotNull @Column(name = "hash") @Index(name="hashIndex") private String hash;
然后删除表并重新启动Tomcat服务器。实例化服务器后,创建了表,但是在以下查询中看不到新索引。
SHOW INDEX FROM tableName
预期用新索引构造表。我在MySQL中使用InnoDB。
有趣的是,在Hibernate配置中,我正在使用hibernate.hbm2ddl.auto=update。
hibernate.hbm2ddl.auto=update
这修改了一个现有的数据库。我是手动删除该表tableName并重新启动Tomcat,并且该表已构建但未创建索引。
tableName
但是,我制作了hibernate.hbm2ddl.auto=create一个在每次webapp实例时都重新创建数据库的程序,它删除了我的所有数据库并重新构建,并且- 是的,我的新索引已创建!
hibernate.hbm2ddl.auto=create