1

Play フレームワークの開発モードで、Global.java を介して initial-data.yml を挿入しました。ただし、1 つのモデルに 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 に答える