Forse è necessario specificare un nome di schema nel nome della tabella di join:
@JoinTable(
name="persons_countries_residence", schema="persons",
[email protected](name="person_id", referencedColumnName="id"),
[email protected](name="country_id", referencedColumnName="id"))