素敵なシーケンスが必要な場合は、Id戦略をアイデンティティに変更することをお勧めします。ただし、これらのタイプのジェネレーターには、作業単位戦略のバッチ処理や中断ができないなどの欠点があります。
ご指摘のとおり、s#arpは、HILO上記の欠点に悩まされない戦略を使用しています。ただし、1つの欠点(実際には欠点ではありません)は、セッションファクトリが構築されるたびにテーブルからId's新しいものが取得されるため、シーケンシャルではないことです(1001、1002、2001、2002、3003など) 。これは、プロジェクトを何度もビルドするときに、開発マシンでより明確になります。本番サーバーでは、セッションファクトリの再構築が少ないため、ギャップは少なくなります。また、ギャップを減らすのではなく、loを減らすことができます!HIhilo10100
IMO結局のところ、内部IDは内部の権利であるため、内部IDが連続していることは問題ではありませんか?また、レコードを削除すると、とにかくギャップが表示されます。
テーブルidがビジネスロジックに依存している場合、内部id'sは答えではなく、内部IDと、ビジネスロジックに固有のインデックスを持つ列が必要になる場合がありますId。
シーケンシャル内部IDが重要だと思う理由を自問しますか?うまくいけば、あなたはそれを心配するほど実際には重要ではないことに気付くでしょう。