Ich möchte zeitbasierte UUID in Java generieren - java.util.UUID.randomUUID() erzeugt eine UUID Version 4. Wie generiert man eine UUID (zeitbasierte) Version 1? Gibt es dafür eine separate Bibliothek oder ist es in der Java 7 API enthalten und ich vermisse sie?Wie generiere ich zeitbasierte UUIDs?
Antwort
Seien Sie sehr vorsichtig bei der Verwendung von com.eaio.uuid.UUID, wenn Sie eine GUID nach einer anderen Zeit als der aktuellen Zeit generieren müssen, da dies immer die gleiche UUID für die angegebene Zeit generiert. Wenn also Ihre Daten UUID generieren müssen, wobei Datensätze dieselbe Zeit haben dürfen, wird dies die gleiche UUID erzeugen.
Wir hierfür benötigte UUID für Datensätze zu erzeugen, die im Voraus erstellt werden und auch mehrere Datensätze gleichzeitig haben wir versucht, es zu zwicken von UUIDGen.createTime zu verwenden versuchen(). Wir haben festgestellt, dass es einen Nebeneffekt hat, die Zeit für Datensätze außer Betrieb zu ändern. Wenn eine nachfolgende Anforderung zum Erstellen von UUID
einen Zeitstempel hat, der älter ist als die vorherige Anforderung, haben Sie am Ende eine UUID
, die auf dem Zeitstempel der vorherigen Anfrage basiert.
Nach der ganzen Analyse mussten wir einfach zurückgehen, um UUID
zum Zeitpunkt der Erstellung zu erstellen, so dass wir es nicht als Argument übergeben müssen. Welche Lösung wir auch immer entwickeln, um zu einem späteren Zeitpunkt UUID
zu generieren, jeder hat einen Nachteil.
String timeuuid = com.datastax.driver.core.utils.UUIDs.timeBased().toString();
haben einen Blick auf https://docs.datastax.com/en/drivers/java/2.0/com/datastax/driver/core/utils/UUIDs.html
Siehe auch https://datastax-oss.atlassian.net/browse/JAVA-109 – Vadzim
FasterXML Java UUID-Generator (JUG)
https://github.com/cowtowncoder/java-uuid-generator
UUID uuid = Generators.timeBasedGenerator().generate();
- 1. Zeitbasierte Ereignisbehandlung
- 2. Zeitbasierte Aktionen oder Texte
- 3. Hat MySQL zeitbasierte Trigger?
- 4. Zeitbasierte Containerplanung auf Kubernetes?
- 5. Multi-Thread zeitbasierte Anrufhierarchie
- 6. Generiere MAC-Adresse in Go
- 7. Abfrage von portal_catalog mit typisierten Uuids anstelle von String-Uuids
- 8. UUIDs in Rails3
- 9. UUIDs in CouchDB
- 10. Zeitbasierte Skalierung auf Elastic Beanstalk
- 11. Understanding benutzerdefinierte BLE UUIDs
- 12. Wie generiere ich Methoden in jmh-Benchmarks?
- 13. Wie generiere ich Daten in MySQL?
- 14. Wie generiere ich generische Listentypen in Java?
- 15. Wie generiere ich RTF aus Java?
- 16. Wie generiere ich ganze Java-Bohnen?
- 17. Wie generiere ich JaxB-Klassen mit java.util.Optional?
- 18. Wie generiere ich Zeichenketten mit ibtool?
- 19. Wie generiere ich pdf mit epydoc?
- 20. Wie generiere ich .json Datei mit PHP?
- 21. Wie generiere ich RTFs mit PHP
- 22. Wie generiere ich Apk mit Genexus?
- 23. Wie generiere ich generic enum auf int?
- 24. Wie generiere ich Datenbankklassendateien mit SubSonic 3?
- 25. Wie generiere ich Android-Stil Javadocs?
- 26. Wie generiere ich IDs für Supporttickets?
- 27. Wie generiere ich changlogFile im .sql Format?
- 28. Wie generiere ich eine Zufallszahl in JavaScript?
- 29. Wie generiere ich eine generische AsyncTask?
- 30. Wie generiere ich specflow nunit testresult.xml
Nein, das Java SDK nicht eine andere UUID Klasse sind als 'UUID '. –
Die UUID-Klasse bietet jedoch Methoden wie public long timestamp(), um den Zeitstempel von der UUID abzurufen, wenn sie zeitbasiert ist. Es gibt jedoch keine Methode, um sie zu generieren – dogfish
Check out JUG @ http://wiki.fasterxml.com/ JugHome, kann es Typ 1 tun. –