1

在Play框架的开发模式下,我通过Global.java插入了我的initial-data.yml。但是,如果一个模型有超过 20 个项目,自动生成的 ID 就会变得疯狂。

例如,如果我有:

computers:
- !!models.Computer
    name: apple01
- !!models.Computer
    name: apple02
- !!models.Computer
    name: apple03
- !!models.Computer
    name: apple04
       ...
- !!models.Computer
    name: apple20
- !!models.Computer
    name: apple21
- !!models.Computer
    name: apple22

从 1 到 20,他们按照我插入的顺序获得了正确的自动生成的 ID。但是,在 20 岁之后,我无法获得我想要的 ID。例如,名称为“apple22”的项目的自动生成 ID 为 34。这很奇怪。有谁知道为什么会这样?

4

1 回答 1

1

我希望它是批量获取序列(第 10 节)和多个线程/连接,但问题中没有足够的信息可以说明。

然而,一个更有用的答案可能是问 - 你为什么关心?格格不入并不意味着不正确。像这样顺序生成的 ID 应该是内部不透明的标识符,仅用于连接和完整性等。不要依赖于它们是按时间排序或无间隙的,也不要将您的应用程序暴露给它们。如果您需要具有特定特征的关键字段,最好定义另一个。

于 2012-08-14T18:45:32.737 回答