私は今日、いくつかの奇妙な行動に遭遇し、それが期待されているのか、それとも標準的なのか疑問に思いました。MySQL5に対してHibernateを使用しています。コーディングの過程で、トランザクションを閉じるのを忘れましたが、他の人が関係していると思います。
最終的にトランザクションを閉じ、コードを実行してテーブルを確認したところ、次のことに気づきました。トランザクションを閉じずに誤ってコードを実行したため、実際の行が挿入されなかったにもかかわらず、自動インクリメントの代理主キー値がインクリメントされたため、ギャップがありました(つまり、idフィールド値が751から762)。
これは予想される動作ですか、それとも標準的な動作ですか?データベースによって異なるのでしょうか?および/またはHibernate自身のトランザクション抽象化はこれに何らかの影響を与える可能性がありますか?