Nelle mie esperienze, è normale che l'ibernazione crei una chiave esterna e un indice sul campo FK con un nome diverso. Non riesco a capire perché l'ibernazione genera lo stesso nome in modo strano.
Puoi usare @ForeignKey(name="") , @Index o @IndexColumn per cambiare la chiave esterna o il nome dell'indice. Ciò eviterà questo problema.
Ma sembra che abbia un bug
con @OneToOne