@Id și @GeneratedValue în Spring Data JPA în Spring Boot

data Spring Boot 3.x / Jakarta Persistence Q&A / Distribuie cod

Definirea cheii primare a entităților JPA și a strategiilor moderne de generare a ID-urilor: IDENTITY, SEQUENCE și chei UUID.

Sintaxă
@Id @GeneratedValue(strategy = GenerationType.IDENTITY / SEQUENCE / UUID)

Fiecare entitate JPA trebuie să declare în mod obligatoriu un câmp marcat cu adnotarea @Id, reprezentând cheia primară a tabelei SQL.

Adnotarea @GeneratedValue stabilește modul în care baza de date sau providerul JPA generează valorile unice ale ID-ului:

  • IDENTITY: Baza de date generează ID-ul prin auto-increment (ideal pentru MySQL / MariaDB).
  • SEQUENCE: Folosește o secvență dedicată din baza de date cu suport pentru pre-alocare în loturi (recomandat pentru PostgreSQL și Oracle).
  • UUID: Generare automată de chei unice globale de tip UUID (suport nativ excelent în Spring Boot 3 / Hibernate 6).
Exemplu: Generare ID prin Sequence vs UUID în Hibernate 6
package ro.dexblog.demo.model;

import jakarta.persistence.*;
import java.util.UUID;

@Entity
public class OrderItem {
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "item_seq_gen")
    @SequenceGenerator(name = "item_seq_gen", sequenceName = "seq_order_items", allocationSize = 50)
    private Long id;
}

@Entity
public class SecureToken {
    @Id
    @GeneratedValue(strategy = GenerationType.UUID)
    private UUID id;
}

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: @Id și @GeneratedValue în Spring Data JPA

Ai o nelămurire despre utilizarea comenzii @Id și @GeneratedValue în Spring Data JPA sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.