我正在使用 Cayenne 将记录添加到 MySQL 数据库中,并且我看到了一些奇怪的行为。
当我运行我的应用程序时,我会创建一个 DataContext,执行一系列添加操作,然后关闭应用程序。这很有效,因为我使用整数作为主键,并且当我向数据库添加记录时,键会自动递增。出于某种原因,它从第一个记录的 200 开始,然后到第二个记录的 201,依此类推。
但是,如果我停止应用程序,然后再次运行它,主键又从 200 开始!当然,这会导致抛出异常,因为新记录最终具有重复的主键。看起来当我在启动应用程序后使用 DataContext 的 newObject() 创建一个新对象时,Cayenne 不会“记住”应用程序之前运行时主键增加了多少。
有谁知道是什么导致了主键值的重置,以及(更重要的是)如何阻止它发生???还是我在当前版本的 Cayenne 中发现了错误?我正在使用版本 3.0.2。
有人请指教...