@JoinColumn Anotasi Dijelaskan

1. Perkenalan

Anotasi javax.persistence.JoinColumn menandai kolom sebagai kolom gabungan untuk asosiasi entitas atau kumpulan elemen.

Dalam tutorial singkat ini, kami akan menunjukkan beberapa contoh penggunaan @JoinColumn dasar .

2. Contoh Pemetaan @OneToOne

The @JoinColumn penjelasan dikombinasikan dengan @OneToOne pemetaan menunjukkan bahwa kolom tertentu dalam entitas pemilik mengacu pada kunci utama dalam entitas referensi:

@Entity public class Office { @OneToOne(fetch = FetchType.LAZY) @JoinColumn(name = "addressId") private Address address; }

Contoh kode di atas akan membuat kunci asing yang menghubungkan entitas Office dengan kunci utama dari entitas Alamat . Nama kolom kunci asing di entitas Office ditentukan oleh properti nama .

3. Contoh Pemetaan @OneToMany

Saat menggunakan pemetaan @OneToMany, kita dapat menggunakan parameter mappedBy untuk menunjukkan bahwa kolom yang diberikan dimiliki oleh entitas lain.

@Entity public class Employee { @Id private Long id; @OneToMany(fetch = FetchType.LAZY, mappedBy = "employee") private List emails; } @Entity public class Email { @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "employee_id") private Employee employee; }

Dalam contoh di atas, Email (entitas pemilik) memiliki kolom gabungan employee_id yang menyimpan nilai id dan memiliki kunci asing ke entitas Karyawan .

4. @JoinColumns

Dalam situasi ketika kita ingin membuat beberapa kolom gabungan, kita dapat menggunakan anotasi @JoinColumns :

@Entity public class Office { @ManyToOne(fetch = FetchType.LAZY) @JoinColumns({ @JoinColumn(name="ADDR_ID", referencedColumnName="ID"), @JoinColumn(name="ADDR_ZIP", referencedColumnName="ZIP") }) private Address address; } 

Contoh di atas akan membuat dua kunci asing yang menunjuk ke kolom ID dan ZIP di entitas Alamat :

5. Kesimpulan

Di artikel ini, kita telah mempelajari cara menggunakan anotasi @JoinColumn . Kami telah menunjukkan contoh cara membuat asosiasi entitas tunggal dan kumpulan elemen.

Seperti biasa, semua kode sumber tersedia di GitHub.