Jpa Eclipselink-TableGenerator的allocationSize属性

Jpa Eclipselink-TableGenerator的allocationSize属性,jpa,eclipselink,Jpa,Eclipselink,我正在为一个小项目使用EclipseLink来记录用户活动。我有一个类,它捕获有关活动的详细信息,我正在使用表生成器策略为该类生成主键ID 我面临的问题是,EclipseLink(我将其称为EL)以50的增量分配主键,我知道这是allocationSize的默认值。这是在相同的JVM周期内(即,没有重新启动) 我知道,allocationSize用于表示EL将在内存中预分配的ID数。我想使用这个功能,但EL似乎不是这样工作的 只有当我将allocationSize更改为1时,我才能让EL按顺序生

我正在为一个小项目使用
EclipseLink
来记录用户活动。我有一个类,它捕获有关活动的详细信息,我正在使用表生成器策略为该类生成主键ID

我面临的问题是,
EclipseLink
(我将其称为EL)以50的增量分配主键,我知道这是
allocationSize
的默认值。这是在相同的JVM周期内(即,没有重新启动)

我知道,
allocationSize
用于表示EL将在内存中预分配的ID数。我想使用这个功能,但EL似乎不是这样工作的

只有当我将
allocationSize
更改为1时,我才能让EL按顺序生成主键

任何帮助都将不胜感激


我正在使用EclipseLink2.3.0。

谢谢大家的帮助


我已经解决了我的问题。我手动管理EntityManager的生命周期以及事务。我修改了代码,将EntityManager注入EJB,并让容器处理事务。我已将allocationSize设置为1000,并获得了所需的结果。再次感谢vels4j、Chris和James的帮助

你能再解释一下什么不起作用吗?将其设置为1表示EclipsLink需要为每个序列转到表中。您试图如何使用它?即使分配大小为50,ID仍将或多或少按顺序分配,除非您关闭EntityManagerFactory。包括您的代码和持久性。xml谢谢大家的帮助。我已经解决了我的问题。我正在手动管理
EntityManager
的生命周期以及事务。我更改了代码,将
EntityManager
注入EJB,并让容器处理事务。我已将allocationSize设置为1000,并获得了所需的结果。再次感谢vels4j、Chris和James的帮助。@westendraider您能将您的解决方案放入这个问题的答案中并标记为已解决吗?这使得寻找真正开放的问题变得更容易。