在Postgres和Java中将字符串转换为UUID

时间:2012-10-07 18:47:57

标签: java postgresql sorting uuid

我需要将String(文本)转换为UUID(Postgres)并保持与String相同的排序。可能吗?我在时间上看到了UUID,所以也许这是不可能的?

4 个答案:

答案 0 :(得分:14)

在PostgresSQL的SQL语法中 运用     的concat(UUID, '') 获得文本结果。

使用     UUID(文本) 获取UUID结果

答案 1 :(得分:2)

JDK中有一个专门用于管理UUID的类,名为java.util.UUID。其中有一个静态方法fromString,可以满足您的目标。据我所知,您可以在JDBC插入语句中使用UUID实例。

答案 2 :(得分:1)

在PostgreSQL中,除了使用uuid()外,还可以像::uuid一样显式指定类型:

with myconst (__ef_filter__id_0, __filter_workitemid_0, __filter_projectid_1, __id_2) as (
values ( 'fcb8284c-1bd4-4d50-b5df-09a091b01d8c'::uuid, '9e4b70a7-c222-47dd-87cb-fbbaaf396ccd'::uuid, uuid('2b10c0a5-e35d-425d-a71a-9e473924ac4c'), uuid('3fa85f64-5717-4562-b3fc-2c963f66afa6')) )
select ...

答案 3 :(得分:0)

oVirt开源项目中,我们使用PostgreSQL uuid类型来存储我们的主键和外键。
我们构建了一个名为Guid的包装器,它使用java.util.UUID类来保存来自DB的读取数据。
在检索ResultSet时(我们使用spring-jdbc),我们使用getString方法将UUID值作为String获取,然后使用java.util.UUID的fromString方法。
您可以克隆我们的项目并查看ovirt-engine / backend / manager / modules / dal(我们的数据访问层)项目以获取更多信息。