U kunt dit doen met Hibernate's hulpprogramma objecten ondersteuning, maar het kan niet worden gedaan met behulp van annotaties :-(.
In jouw voorbeeld zou het er ongeveer zo uitzien (veel dingen weggelaten voor de beknoptheid):
<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>
Mijn excuses voor het ontbreken van een op annotaties gebaseerd antwoord :-(. Hopelijk helpt dit.
OPMERKING :Als u deze benadering volgt, moet u er rekening mee houden dat het dialectbereik exact moet overeenkomen . Als uw Hibernate-configuratie bijvoorbeeld zegt dat u MySQL5InnoDBDialect
moet gebruiken , dan moet je dit dialect hebben in de <dialect-scope>
element ook. MySQLDialect
gebruiken zal niet werken, ook al is het de superklasse van het InnoDB-dialect.