Conversion String to UUID in Postgres and Java

48,312

Solution 1

In PostgresSQL's SQL gramma Using

concat(UUID,'')

gets a text result. Using

uuid(text)

gets a UUID result.

Solution 2

In PostgreSQL, apart from using uuid(), it's also possible to specify the type explicitly like ::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 ...

Solution 3

There is a class in JDK dedicated to the management of UUIDs, called java.util.UUID. There's a static method fromString in it that should fit your goal. As far as I can see, you can use instances of UUID in JDBC insert statements.

Solution 4

At oVirt open source project, we use the PostgreSQL uuid type to store our Primary keys and Foreign keys.
We have build a wrapper called Guid that uses the java.util.UUID class to hold the read data from the DB.
When retrieving a ResultSet (we use spring-jdbc) we use the getString method in order to get the UUID value as String, and then use the fromString method of java.util.UUID.
You can git clone our project and look at ovirt-engine/backend/manager/modules/dal (our data access layer) project for more information.

Share:
48,312

Related videos on Youtube

javalonde
Author by

javalonde

Updated on July 09, 2021

Comments

  • javalonde
    javalonde almost 3 years

    I need to convert String ( text ) to UUID ( Postgres ) and keep the same sorting like for a String. Is it possible? I saw the UUID base on the time, so maybe it's not possible?