Rumah > pangkalan data > tutorial mysql > Bagaimanakah Anotasi `@Id` dan `@GeneratedValue(strategy = GenerationType.IDENTITY)` Menjana ID Auto-Incrementing dalam JPA?

Bagaimanakah Anotasi `@Id` dan `@GeneratedValue(strategy = GenerationType.IDENTITY)` Menjana ID Auto-Incrementing dalam JPA?

DDD
Lepaskan: 2025-01-06 02:39:40
asal
838 orang telah melayarinya

How Do `@Id` and `@GeneratedValue(strategy = GenerationType.IDENTITY)` Annotations Generate Auto-Incrementing IDs in JPA?

Memahami @Id dan @GeneratedValue(strategy = GenerationType.IDENTITY) Anotasi untuk Auto-Incrementing Table ID

Dalam Java Persistence API ( JPA), anotasi @Id menandakan medan sebagai kunci utama untuk entiti. Anotasi @GeneratedValue menentukan cara nilai kunci utama dijana. Satu strategi yang biasa digunakan ialah GenerationType.IDENTITY, yang melibatkan pergantungan pada ciri penambahan automatik pangkalan data.

Mengapa Gunakan Anotasi Ini?

Anotasi ini memberikan beberapa faedah:

  • Kemudahan: Mereka mengautomasikan proses mengurus kunci utama, menghapuskan keperluan untuk tugasan manual.
  • Ketekalan Data: Dengan bergantung pada mekanisme autoincrement pangkalan data, anotasi memastikan nilai kunci utama adalah unik dalam sebuah jadual.
  • Agnostik Pangkalan Data: Anotasi tidak memerlukan ciri pangkalan data khusus, membolehkannya berfungsi dengan lancar dengan pangkalan data yang berbeza.

Contoh Penggunaan

Contoh kod berikut menggambarkan bagaimana @Id dan @GeneratedValue( strategi = GenerationType.IDENTITY) anotasi ialah digunakan:

@Entity
public class Author {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    private String name;
    private String address;

}
Salin selepas log masuk

Dalam contoh ini, medan id dianotasi dengan kedua-dua @Id dan @GeneratedValue(strategi = GenerationType.IDENTITY), menunjukkan bahawa ia adalah kunci utama dan harus ditambah secara automatik.

GenerationType.IDENTITI vs. Lain-lain Jenis

GenerationType.IDENTITY ialah salah satu daripada beberapa jenis strategi yang tersedia untuk anotasi @GeneratedValue. Jenis lain termasuk:

  • AUTO: Mengarahkan penyedia kegigihan untuk memilih strategi yang sesuai berdasarkan pangkalan data yang digunakan.
  • JADUAL: Menggunakan jadual pangkalan data untuk menjana kunci utama nilai.
  • URUTAN: Bergantung pada objek jujukan pangkalan data untuk penjanaan kunci.

Jenis yang sesuai untuk digunakan bergantung pada pangkalan data khusus yang digunakan dan keperluan aplikasi.

Keperluan Memperluas Domain Kelas

Keperluan melanjutkan kelas abstrak Domain bergantung pada keperluan aplikasi khusus. Kelas domain biasanya menyediakan kefungsian dan tingkah laku biasa untuk entiti dalam model domain. Dalam contoh yang diberikan, melanjutkan kelas Domain nampaknya tidak perlu, kerana kelas Pengarang tidak memerlukan sebarang fungsi berkaitan domain khusus.

Atas ialah kandungan terperinci Bagaimanakah Anotasi `@Id` dan `@GeneratedValue(strategy = GenerationType.IDENTITY)` Menjana ID Auto-Incrementing dalam JPA?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan