Bem, essa é a primeira coisa que você deve corrigir (com monitoramento adequado).
Que eu saiba, o Hibernate não oferece nenhuma facilidade para isso. Pessoalmente, eu investigaria o suporte a failover do MySQL e seu driver JDBC. Não posso fornecer uma resposta muito concreta porque não implementei isso com o MySQL, mas aqui estão algumas dicas:
- Estratégia de failover do MySQL usando gerenciamento de estado, apresentando MPP - Parte 1
- 21.3.4.1. Nomes de classe de driver/fonte de dados, sintaxe de URL e propriedades de configuração para Connector/J
- 21.3.4.6. Usando a replicação mestre/escravo com ReplicationConnection
E, conforme mencionado na parte inferior do último link acima (e também em este comentar ):