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;
}
Întrebări & Exemple de Cod:
@Id și @GeneratedValue în Spring Data JPAAi o nelămurire despre utilizarea comenzii
@Id și @GeneratedValue în Spring Data JPAsau 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.