Puede hacer esto usando el auxiliar de Hibernate objetos soporte, pero no se puede hacer usando anotaciones :-(.
En su ejemplo, se vería así (se omitieron muchas cosas por brevedad):
<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>
Pido disculpas por la falta de una respuesta basada en anotaciones :-(. Espero que esto ayude.
NOTA :si adopta este enfoque, tenga en cuenta que el alcance del dialecto tiene que coincidir exactamente . Por ejemplo, si su configuración de Hibernate dice usar MySQL5InnoDBDialect
, entonces debe tener este dialecto en el <dialect-scope>
elemento también. Usando MySQLDialect
no funcionará aunque sea la superclase del dialecto InnoDB.