Przyczyną problemu jest to, że tabela sprzężeń jest używana, jeśli @OneToMany strona stowarzyszenia jest właścicielem relacji.
Aby określić, że kolumna łączenia (klucz obcy) w ads tabela jest używana do asocjacji zamiast oddzielnej tabeli sprzężenia, po prostu zmapuj asocjację za pomocą @JoinColumn :
@OneToMany
@JoinColumn
private Set<Ad> ads;