Em um mapeadomento @ManyToMany conforme abaxo é possivel definir o nome das foreing key
public class Usuario {
@ManyToMany
@JoinTable(name="USUARIOS_RECEITAS",
joinColumns={@JoinColumn(name="USUARIO_ID")},
inverseJoinColumns={@JoinColumn(name="RECEITA_ID")})
public List<Receita> receitas;
}
Em um relacionamento @ManyToOne, definimos o nome da foreign key da seguinte forma:
public class CentroCusto {
@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.LAZY)
@JoinColumn(name="ID_CENTRO_CUSTO",referencedColumnName="ID")
@ForeignKey(name="FK_ID_CENTRO_CUSTO")
private List<Despesa> despesas;
}