在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.这很奇怪。有谁知道为什么会这样?
答案 0 :(得分:1)
我希望它是batched fetching of sequences(第10节)和多个线程/连接,但问题中没有足够的信息可以告诉。
然而,一个更有用的答案可能是问 - 你为什么关心?高兴并不意味着不正确。像这样的顺序生成的ID应该是仅用于连接和完整性等的内部不透明标识符。不要依赖于他们的时间订购或非嬉皮士,并且不要将您的应用程序暴露给他们。如果您需要具有特定特征的关键字段,则最好定义另一个字段。