Exatamente isso, você precisa criar três unidades de persistência… uma para cada URL que você quer acessar… aí, em RunTime, você altera para qual das unidades de persistência você quer acessar…
Ou então, você pode fazer de outra forma…
cria um package chamado br.com.seuProjeto.util e lá, coloca três classes java que retornam uma EntityManager para cada uma das unidades de persistência que vc tem. Desso modo, quando você precisar usar uma determinada URL, você acessa uma classe, quando precisar usar outra, você acessa a outra…
Caso você ainda não esteja usando essa abordagem de criar classes para carregar sua persistence.xml, aqui vai um exemplo de código:
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.PersistenceException;
public class HibernateUtil {
private static final EntityManagerFactory SESSION_FACTORY;
static{
try{
SESSION_FACTORY = Persistence.createEntityManagerFactory("SeuProjetoPU");
} catch(PersistenceException ex){
System.err.println("Erro na inicialização da unidade de persistência " + ex.getMessage());
throw new ExceptionInInitializerError();
}
}
public static EntityManager getEntityManager() throws PersistenceException{
return SESSION_FACTORY.createEntityManager();
}
}
O nome da classe é HibernateUtil porque, nesse caso, estou considerando que você está usando o Hibernate para implementar a especificação JPA…
Espero ter ajudado de alguma forma…