Jag vet inte hur transaktionen "kapsling" görs i Hibernate (eftersom jag inte tror att MySQL faktiskt kan kapsla transaktioner).
Så jag skulle anta att den andra (kapslade) transaktionen måste (?) vara en ny anslutning till databasen - annars skulle det inte vara möjligt att återställa den "kapslade" transaktionen utan att påverka den "yttre" transaktionen.
Om så verkligen är fallet drabbas du antagligen av MySQL:s standardisoleringsnivå som är REPEATABLE READ
som inte låter den yttre transaktionen se någon data som har begåtts efter den transaktionen startade.
För att testa denna teori, försök att ändra isoleringsnivån (för den yttre transaktionen) till READ COMMITTED
och se om det löser problemet.