Using UUID As Entity Primary Key In Jakarta EE 10

Photo of Luqman Saeed by Luqman Saeed

In prior versions of Jakarta EE, the use of UUID as entity ID or database primary key type was a vendor specific feature. So even though you could use it, you had to rely on vendor specific constructs to get the mapping right. With the release of Jakarta EE 10 however, the Jakarta Persistence specification now provides native support for using UUID as entity ID type.

The jakarta.persistence.GenerationType now has a UUID option that indicates to the persistence provider to generate and assign RFC 4122 UUID to the annotated field. The HelloEntity below shows how to use this new feature.

public class HelloEntity implements Serializable {

    @GeneratedValue(strategy = GenerationType.UUID)
    private UUID id;
    private String greeting;

The strategy parameter of the @GeneratedValue annotation is passed the GenerationType.UUID type. With this, you now have a vendor neutral, portable way to entity IDs to the UUID type. 

Read more of our Jakarta EE content: