Java · java.util.UUID · Code Reference

Generate a UUID in Java

Complete reference for generating, validating, and formatting UUIDs using Java’s built-in java.util.UUID class — covers randomUUID, nameUUIDFromBytes, and Hibernate/Spring Boot integration.

Quick Start

Generate a Random UUID (v4) in Java

Java has included UUID support in the standard library since Java 5 via java.util.UUID — no external dependency needed:

Java
import java.util.UUID; UUID id = UUID.randomUUID(); System.out.println(id); // 550e8400-e29b-41d4-a716-446655440000 String idStr = id.toString(); String upper = id.toString().toUpperCase();
💡

UUID.randomUUID() is thread-safe

UUID.randomUUID() uses SecureRandom internally, which is safe to call concurrently from multiple threads without synchronization. It generates a version 4 UUID every time.

All Versions

UUID Versions Available in Java

VersionJava MethodUse Case
v3 (MD5 name-based)UUID.nameUUIDFromBytes(bytes)Deterministic UUID from a byte array. Only MD5-based version built into Java.
v4 (Random)UUID.randomUUID()General purpose. Default choice for most applications.
v1, v5, v6, v7Not in standard libraryUse the java-uuid-generator (JUG) library — see below.
Java — Deterministic UUID (v3, built-in)
import java.util.UUID; import java.nio.charset.StandardCharsets; // Same input ALWAYS produces the same UUID UUID id = UUID.nameUUIDFromBytes(“example.com”.getBytes(StandardCharsets.UTF_8)); System.out.println(id);

UUID v7

UUID v7 in Java (2026 Recommended for DB Keys)

Java’s standard library does not yet support v1, v5, or v7. For UUID v7 — recommended for database primary keys — use the java-uuid-generator (JUG) library:

Maven (pom.xml)
<dependency> <groupId>com.fasterxml.uuid</groupId> <artifactId>java-uuid-generator</artifactId> <version>5.1.0</version> </dependency>
Java
import com.fasterxml.uuid.Generators; import java.util.UUID; UUID id = Generators.timeBasedEpochGenerator().generate(); // time-ordered UUID v7, ideal for DB primary keys
⚠️

Hibernate 6.4+ supports UUID v7 natively

If you use Hibernate ORM 6.4 or later, the @UuidGenerator(style = Style.TIME) annotation generates v7-style time-ordered UUIDs without any extra dependency.

Validation

Validate a UUID String in Java

Wrap UUID.fromString() in a try/catch to check validity:

Java
import java.util.UUID; public static boolean isValidUUID(String value) { try { UUID.fromString(value); return true; } catch (IllegalArgumentException e) { return false; } } isValidUUID(“550e8400-e29b-41d4-a716-446655440000”); // true isValidUUID(“not-a-uuid”); // false // Check version UUID id = UUID.fromString(“550e8400-e29b-41d4-a716-446655440000”); System.out.println(id.version()); // 4

Frameworks

UUIDs in Spring Boot, Hibernate & JPA

JPA Entity (Hibernate 6+)
import jakarta.persistence.*; import org.hibernate.annotations.UuidGenerator; import java.util.UUID; @Entity public class Order { @Id @UuidGenerator private UUID id; }
Spring Boot REST controller
@GetMapping(“/orders/{id}”) public Order getOrder(@PathVariable UUID id) { return orderRepository.findById(id) .orElseThrow(() -> new NotFoundException()); }

FAQ

Java UUID FAQ

Java has included java.util.UUID in the standard library since Java 5. Just call UUID.randomUUID() to get a random UUID v4 — no Maven or Gradle dependency required. It works in any standard JDK installation.
Yes. UUID.randomUUID() uses a shared SecureRandom instance internally and is safe to call from multiple threads concurrently without external synchronization. Each call produces an independent, cryptographically random UUID v4.
Java’s standard library does not include UUID v7 natively. Use the java-uuid-generator (JUG) library via Maven/Gradle, calling Generators.timeBasedEpochGenerator().generate(). Alternatively, Hibernate ORM 6.4+ supports time-ordered UUID generation natively through the @UuidGenerator(style = Style.TIME) annotation.
UUID.nameUUIDFromBytes(byte[]) generates a deterministic UUID v3 (MD5-based) from a byte array input. The same input bytes always produce the same UUID, making it useful for deduplication or generating stable IDs from known data such as file hashes or URLs. It is the only name-based UUID version built into Java’s standard library.

Need to Generate a UUID Right Now?

Skip the code — use our free browser-based generator for all 8 UUID versions.

Open UUID Generator