Playframework 2.0 播放2.0.4/Ebean 2.7.3-DB主键排序

Playframework 2.0 播放2.0.4/Ebean 2.7.3-DB主键排序,playframework-2.0,ebean,Playframework 2.0,Ebean,我对Play Framework 2.0.4有问题 我有通过Eben ORM管理的模型。这些模型具有带有序列自动生成器的数字主键ID int。底层数据库是PostgreSQL 问题是,当我将一个新对象保存到数据库时,ID的选择范围是从1到20+数据库的最后一个ID。我从Play源代码中发现,这与数据库批量大小有关。如果我将批量大小更改为1。一切都会好起来的。我在这里找到了一种改变期望值的方法。无论如何,在我的Ebean 2.7.3版本中似乎没有ServerConfigStartup接口。这可能是

我对Play Framework 2.0.4有问题

我有通过Eben ORM管理的模型。这些模型具有带有序列自动生成器的数字主键ID int。底层数据库是PostgreSQL

问题是,当我将一个新对象保存到数据库时,ID的选择范围是从1到20+数据库的最后一个ID。我从Play源代码中发现,这与数据库批量大小有关。如果我将批量大小更改为1。一切都会好起来的。我在这里找到了一种改变期望值的方法。无论如何,在我的Ebean 2.7.3版本中似乎没有ServerConfigStartup接口。这可能是2.7.5中的新特性。另一种方法是在我的播放版本中忽略使用ebean.properties


问题是。。有没有办法改变游戏2.0.4中的批量大小。。或有没有办法强迫Ebean/PostgreSQL使用增量为1的ID排序?

好吧,我找到了一个临时解决方案。我在2.0.4版本中直接修补了EbeanPlugin.java,重新编译,瞧,它正在工作。我通过将config.setDatabaseSequenceBatchSize1行添加到Ebean配置来强制执行所需的行为。我知道。。这是丑陋的,但功能。在当前的GIT版本中,它是以另一种方式修复的。希望它很快会变得稳定,这样我就可以切换到原始代码。我遇到了类似的问题,因为我在序列滚动时遇到了id冲突,例如17,18,19,1,2,4。。。在插入循环中。最后我切换到UUID。好吧,我找到了一个临时解决方案。我在2.0.4版本中直接修补了EbeanPlugin.java,重新编译,瞧,它正在工作。我通过将config.setDatabaseSequenceBatchSize1行添加到Ebean配置来强制执行所需的行为。我知道。。这是丑陋的,但功能。在当前的GIT版本中,它是以另一种方式修复的。希望它很快会变得稳定,这样我就可以切换到原始代码。我遇到了类似的问题,因为我在序列滚动时遇到了id冲突,例如17,18,19,1,2,4。。。在插入循环中。最后我切换到UUID。