Je ne sais pas comment la transaction "imbriquée" est effectuée dans Hibernate (car je ne pense pas que MySQL puisse réellement imbriquer les transactions).
Je suppose donc que la deuxième transaction (imbriquée) doit (?) Être une nouvelle connexion à la base de données - sinon, il ne serait pas possible d'annuler la transaction "imbriquée" sans affecter la transaction "externe".
Si c'est effectivement le cas, alors vous êtes probablement touché par le niveau d'isolation par défaut de MySQL qui est REPEATABLE READ
qui ne laissera pas la transaction externe voir les données qui ont été validées après cette transaction a commencé.
Pour tester cette théorie, essayez de changer le niveau d'isolement (de la transaction externe) en READ COMMITTED
et voyez si cela résout le problème.