Chcę generować oparty na czasie UUID w java - java.util.UUID.randomUUID() genruje wersję UUID 4. Jak wygenerować UUID w wersji 1 (opartej na czasie)? Czy istnieje oddzielna biblioteka do tego lub jest to część jak przewidziano w Java 7 API i brakuje mi go.Jak generować oparte na czasie identyfikatory UUID?
Odpowiedz
Zachowaj ostrożność, używając polecenia com.eaio.uuid.UUID, jeśli chcesz wygenerować identyfikator GUID według czasu innego niż bieżący czas, ponieważ zawsze będzie generować ten sam identyfikator UUID dla danego czasu. Jeśli więc Twoje dane wymagają wygenerowania UUID, gdzie rekordy mogą mieć ten sam czas, wygeneruje to samo UUID.
Potrzebowaliśmy tego do wygenerowania UUID dla rekordów, które są tworzone z wyprzedzeniem, a także wielu rekordów w tym samym czasie, próbowaliśmy zmodyfikować go, próbując użyć UUIDGen.createTime(). Okazało się, że ma to efekt uboczny, aby zmutować czas dla rekordów nieczynnych. Jeśli kolejne żądanie utworzenia UUID
ma znacznik czasu starsze niż poprzednie żądanie, otrzymasz UUID
, który jest oparty na sygnaturze czasowej poprzedniego żądania.
Po analizie, musieliśmy po prostu wrócić do tworzenia UUID
w momencie tworzenia, abyśmy nie musieli podawać go jako argumentu. Niezależnie od tego, jakie rozwiązanie zaproponujemy, aby później wygenerować UUID
, każda z nich ma swoją wadę.
String timeuuid = com.datastax.driver.core.utils.UUIDs.timeBased().toString();
spojrzeć https://docs.datastax.com/en/drivers/java/2.0/com/datastax/driver/core/utils/UUIDs.html
Zobacz także 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. jak używać UUID w Django
- 2. Adresy URL bezpieczne identyfikatory UUID w najmniejszej liczbie znaków
- 3. python: jak przekonwertować prawidłowy uuid z String na UUID?
- 4. "Oparte na Monadzie" oparte na zdarzeniach IO
- 5. UUID dla DynamoDB?
- 6. Czy istnieje sposób na retroaktywne tworzenie UUID opartego na czasie/węźle w PHP?
- 7. Jak przekonwertować wartość UUID na ciąg
- 8. zainstalować uuid-dev na Heroku
- 9. Wyzwalacze zdarzeń oparte na zegarach
- 10. IDE oparte na przeglądarce?
- 11. mysql UUID() i java UUID.randomUUID()
- 12. jak generować konstruktorów w eclipse
- 13. Wartości oparte na warunku
- 14. Widoki oparte na klasach Widoki oparte na funkcjach VS
- 15. Jak programowo generować serialVersionUID w Javie?
- 16. Jak przechowywać uuid jako numer?
- 17. Treści warunkowe oparte na konfiguracji
- 18. Widoki oparte na rolach Django?
- 19. Adnotacje warunkowe oparte na środowisku
- 20. Wyśmiewające połączenia oparte na odbiorze
- 21. Maszyny stanu oparte na korupinach
- 22. Specjalizujące szablony oparte na metodach
- 23. Renderowanie oparte na wektorze OSM w czasie rzeczywistym w systemie iOS (przy użyciu OpenGL ES)
- 24. Klastrowanie oparte na macierzy odległościowej
- 25. Opracowanie oparte na chmurze Android
- 26. Przekierowanie JavaScript oparte na Referrer?
- 27. Pobierz BinUata UUID z Mongo jako ciąg
- 28. Zwiększenie liczby konwersji :: uuid na char *
- 29. Jak mogę generować takie wątki?
- 30. Aby porównać UUID, czy mogę użyć == lub użyć UUID.equals (UUID)?
Nie, Java SDK nie zawiera inną klasę UUID niż 'UUID '. –
Klasa UUID zapewnia jednak metody takie jak publiczny długi znacznik czasu(), aby uzyskać znacznik czasu z UUID, jeśli jest oparty na czasie .. ale nie ma metody, aby go wygenerować – dogfish
Sprawdź JUG @ http://wiki.fasterxml.com/ JugHome, może zrobić typ 1. –