我需要将String(文本)转换为UUID(Postgres)并保持与String相同的排序。可能吗?我在时间上看到了UUID,所以也许这是不可能的?
答案 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(我们的数据访问层)项目以获取更多信息。