Spring @Transactional (readOnly = true) e Replicação MySQL

Ao usar o com.mysql.jdbc.ReplicationDriver com anotações @Transactional, você pode encontrar um comportamento estranho. Recentemente, aprendi que marcar um método como somente leitura irá impedi-lo de gravar qualquer coisa no banco de dados, mas sem lançar qualquer tipo de mensagem de erro.

Parece que, com o Hibernate, o aviso de transação somente leitura fará com que ele defina a conexão para nunca ser liberada. Portanto, em vez de dar uma mensagem de erro, a sessão será encerrada sem confirmar a gravação.

Achei esse comportamento surpreendente e pensei em compartilhá-lo, caso mais alguém esteja usando esse driver para transações.