26

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

4

4 回答 4

41

在 PostgresSQL 的 SQL 语法中使用

concat(UUID,'')

得到一个文本结果。使用

uuid(text)

得到一个 UUID 结果。

于 2016-01-07T10:17:51.173 回答
8

在 PostgreSQL 中,除了 using 之外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 ...
于 2020-08-12T08:04:30.223 回答
3

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

于 2012-10-07T18:57:10.393 回答
2

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

于 2012-10-07T19:21:14.127 回答