sql >> データベース >  >> RDS >> Mysql

ネストされたトランザクションのユースケースの外部トランザクションでは、更新がデータベース(JPA、MySQL、Spring Framework、およびHibernate)に保持されていません。

    トランザクションの「ネスト」がHibernateでどのように行われるかはわかりません(MySQLが実際にトランザクションをネストできるとは思わないため)。

    したがって、2番目の(ネストされた)トランザクションはデータベースへの新しい接続(?)である必要があると思います。そうでない場合、「外部」トランザクションに影響を与えずに「ネストされた」トランザクションをロールバックすることはできません。

    これが実際に当てはまる場合は、MySQLのデフォルトの分離レベルであるREPEATABLE READに見舞われる可能性があります。 これにより、外部トランザクションはにコミットされたデータを見ることができなくなります。 そのトランザクションが開始されました。

    この理論をテストするには、(外部トランザクションの)分離レベルをREAD COMMITTEDに変更してみてください。 それで問題が解決するかどうかを確認してください。



    1. SQL Server Management Studio(SSMS)でクリップボードリングを循環する-SQL Server/TSQLチュートリアルパート8

    2. 2つの異なるデータベース間でのデータの同期

    3. MYSQL_ROOT_PASSWORDは設定されていますが、Dockerコンテナのユーザー'root' @'localhost'(パスワード:YESを使用)のアクセスが拒否されています

    4. Laravel:Fakerで複数のユニークな列をシードする