Vc pode configurar a conexão em tempo de execução sim…
Quando vc faz isso:
new Configuration().configure(hibernate.cfg.xml")
Vc obtêm uma instância de Configuration, que tem um método setConfigure(String property, String value)
VC pode fazer algo do tipo:
String bd = "jdbc:postgresql://localhost:5432/banco"
Configuration config = new Configuration().configure(hibernate.cfg.xml")
config.setConfigure("connection.url", "bd");
Agora como vc vai obter o ip… daí é com vc… uma idéia seria… que a máquina q tem o bd… mandar para a máquina q roda hibernate… por exemplo via rmi…
blz…?