今日、好奇心を抱くような動作が発生しました。 MySQL5に対してHibernateを使用しています。私はトランザクションを閉じるのを忘れてコーディングの過程で、私は他の人が関連付けることができると思います。コミットされていないデータベーストランザクションと自動インクリメント列
最後にトランザクションを終了し、コードを実行してテーブルをチェックしたところ、次のことに気付きました。私は間違ってトランザクションを閉じることなく私のコードを誤って実行したので、実際の行が挿入されることはありませんでしたが、自動インクリメント代用プライマリキーの値がインクリメントされたので、ギャップ(idフィールド値が751~762)。
これは予期される動作または標準動作ですか?それはデータベースによって異なるかもしれませんか?そして/またはHibernate自身のトランザクション抽象化はこれにいくつかの影響を及ぼすでしょうか?
私は答えを知っていましたが、これはまだ興味深い質問です! – RichardOD
理想的には、アプリケーション/デザインがシーケンスのギャップの影響を受けてはならないことです。これが実際に重要な状況になることは決してありません –