您可以使用Hibernate的辅助对象支持来执行此操作,但是不能使用注释:-(。
在您的示例中,它看起来像这样(为简洁起见,省略了很多东西):
<class name="Person" table="persons">
<!-- whatever -->
<database-object>
<create>create index sysuuid on persons ( system, `uuid`(8) )</create>
<drop>drop index sysuuid</drop>
<dialect-scope name="org.hibernate.dialect.MysqL5InnoDBDialect" />
</database-object>
</class>
对于缺少基于注释的答案,我深感抱歉:-(。希望能有所帮助。
:如果您采用这种方法,请注意方言作用域必须 完全 匹配。例如,如果您的Hibernate配置说要使用MysqL5InnoDBDialect
,那么您也必须在<dialect- scope>
元素中包含该方言。MysqLDialect
即使它是InnoDB方言的超类,也无法使用。