2016-11-15 4 views
0

のPostgreSQL:PostgreSQLのuuid_generate_v3()をJavaでどのように複製するのですか?

create extension if not exists "uuid-ossp"; 
select uuid_generate_v3(uuid_nil(), 'this is a test'); 
      uuid_generate_v3   
-------------------------------------- 
e1e27115-9f5b-366d-90e8-e07b1b36b99c 
(1 row) 

のJava:PostgreSQLがそうであるよう

java> java.util.UUID.nameUUIDFromBytes("this is a test".getBytes()); 
java.util.UUID res9 = 54b0c58c-7ce9-32a8-b551-351102ee0938 

がどのように私はJavaでのUUIDの同じを生成するのですか?

+2

なぜあなたはデータベースのこの外側を複製する必要がありますか? – bradimus

答えて

1

私が知る限り、直接的な方法はなく、PostgreSQL(およびそのライブラリ)のソースコードを掘り下げて、Javaでアルゴリズムを複製したり、同じライブラリを呼び出す必要があります機能します。より簡単なオプションは、PostgreSQLデータベースにそれらを生成するように依頼することですが、何らかの理由でそれができないと仮定しています。

the documentationからわかるように、PostgreSQLはリバースエンジニアリングから保護するために、まずMD5ハッシュを取ります。次に、OSSP UUIDライブラリのUUIDジェネレータを使用します。

は、私が試した:

java.util.UUID.nameUUIDFromBytes(Md5Utils.getMd5Digest("this is a test")); 

しかし、それは生産:

d69495fb-d538-3991-b96b-aa262ab6dce5 
関連する問題