Cayenne を使用して MySQL データベースにレコードを追加していますが、奇妙な動作が見られます。
アプリケーションを実行するときは、DataContext を作成し、一連の追加を実行してから、アプリケーションを閉じます。主キーに整数を使用しているため、これはうまく機能します。データベースにレコードを追加すると、キーは自動的にインクリメントされます。何らかの理由で、最初のレコードでは 200 から始まり、2 番目のレコードでは 201 に移動します。
ただし、アプリケーションを停止してから再度実行すると、主キーは再び 200 から始まります。もちろん、これにより例外がスローされます。これは、新しいレコードが重複した主キーを持つことになるためです。アプリケーションの起動後に DataContext の newObject() を使用して新しいオブジェクトを作成すると、Cayenne は、アプリケーションが以前に実行されたときに主キーがどれだけインクリメントされたかを「記憶」していないようです。
主キー値のこのリセットの原因と、(さらに重要なことに)それを停止する方法を知っている人はいますか? または、現在のバージョンの Cayenne でバグを見つけましたか? バージョン 3.0.2 を使用しています。
誰かアドバイスください...