Peut-être devez-vous spécifier un nom de schéma dans le nom de la table de jointure :
@JoinTable(
name="persons_countries_residence", schema="persons",
joinColumns=@JoinColumn(name="person_id", referencedColumnName="id"),
inverseJoinColumns=@JoinColumn(name="country_id", referencedColumnName="id"))