Java で時間ベースの汎用一意識別子 (UUID) を生成したいと考えています。
このメソッドは、128 ビットのうち 122 ビットが暗号的に強力な乱数ジェネレーターからのものでjava.util.UUID.randomUUID()
あるUUID バージョン 4を生成します。
バージョン 1 (時間ベース) UUIDを生成する方法は? そのための別のライブラリがありますか、それともJava 7 APIで提供されている方法ですか?それがありません。
Java で時間ベースの汎用一意識別子 (UUID) を生成したいと考えています。
このメソッドは、128 ビットのうち 122 ビットが暗号的に強力な乱数ジェネレーターからのものでjava.util.UUID.randomUUID()
あるUUID バージョン 4を生成します。
バージョン 1 (時間ベース) UUIDを生成する方法は? そのための別のライブラリがありますか、それともJava 7 APIで提供されている方法ですか?それがありません。
現在の時間以外の時間で GUID を生成する必要がある場合は、com.eaio.uuid.UUID の使用に十分注意してください。これは、特定の時間に対して常に同じ UUID を生成するためです。したがって、データに UUID を生成する必要がある場合、レコードには同じ時間が含まれている可能性があり、これは同じ UUID を生成します。
これは、事前に作成されたレコードと同時に複数のレコードの UUID を生成するために必要でした。UUIDGen.createTime() を使用して微調整を試みました。レコードの時間を順不同に変更すると、副作用があることがわかりました。後続の作成リクエストUUID
のタイム スタンプが前のリクエストよりも古い場合はUUID
、前のリクエストのタイム スタンプに基づく が作成されます。
UUID
すべての分析の後、引数として渡す必要がないように、作成時に作成に戻るだけで済みました。後で生成するためにどのソリューションを思いついたとしてもUUID
、すべてに欠点があります。