Talvez você precise especificar um nome de esquema no nome da tabela de junção:
@JoinTable(
name="persons_countries_residence", schema="persons",
joinColumns=@JoinColumn(name="person_id", referencedColumnName="id"),
inverseJoinColumns=@JoinColumn(name="country_id", referencedColumnName="id"))