2010-02-04 12 views

risposta

5

Vedere questo articolo: http://www.informit.com/articles/article.aspx?p=25862&seqNum=7 (collegato a Pagina 7).

Contiene un algoritmo per ciò che l'autore fa riferimento come "COMB" Guids; Riproduco il suo codice (SQL) di seguito:

SET @aGuid = CAST(CAST(NEWID() AS BINARY(10)) 
+ CAST(GETDATE() AS BINARY(6)) AS UNIQUEIDENTIFIER) 

Trivial per convertire questo in Java o la lingua desiderata. L'ovvio principio di base è di rendere la data un componente del Guid. L'intero articolo è una buona lettura, come fa una bella analisi delle prestazioni dei vari approcci.

-3

Io lo uso per generare UUID (Universally ID univoci) per il mio DTOs che agiscono come chiavi surrogate per collezioni transitori. Non so se è la stessa cosa, ma potrebbe indicarti la giusta direzione.

import java.util.UUID; 
... 
    private String uuid=null; 
... 
    protected String getUuid() { 
     synchronized (this) { 
      if (null ==uuid) { 
      uuid = UUID.randomUUID().toString(); 
      } 
      return uuid; 
     } 
     } 
+1

No, questo crea un GUID casuale di serie, ho bisogno di un guid sequenziale. – massimogentilini

3

Per UUID sequenziali, si sono alla ricerca di una versione 1 UUID. Java UUID Generator progetto sembra funzionare abbastanza bene ed è abbastanza facile da usare:

Generators.timeBasedGenerator().generate().toString() 
+1

Il link sembra essere rotto. Alcune ricerche in giro mostrano che questo potrebbe essere il progetto che è stato discusso qui: https://github.com/cowtowncoder/java-uuid-generator – vazor

+0

Grazie. Dopo un primo sguardo sembra che gli uuidi generati siano sequenziali. Forse la mia guerra contro la pagina si divide non è ancora persa .. – frankieta