Penjelasan @JoinColumn Dijelaskan

1. Pengenalan

Anotasi javax.persistence.JoinColumn menandakan lajur sebagai lajur bergabung untuk persatuan entiti atau koleksi elemen.

Dalam tutorial ringkas ini, kami akan menunjukkan beberapa contoh penggunaan @JoinColumn asas .

2. Contoh Pemetaan @OneToOne

The @JoinColumn anotasi digabungkan dengan @OneToOne pemetaan menunjukkan bahawa lajur yang diberikan dalam entiti pemilik merujuk kepada kunci utama dalam entiti rujukan:

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

Contoh kod di atas akan membuat kunci asing yang menghubungkan entiti Pejabat dengan kunci utama dari entiti Alamat . Nama lajur kunci asing dalam entiti Pejabat ditentukan oleh nama harta.

3. Contoh Pemetaan @OneToMany

Semasa menggunakan pemetaan @OneToMany kita dapat menggunakan parameter mappedBy untuk menunjukkan bahawa lajur yang diberikan dimiliki oleh entiti 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, E-mel (entiti pemilik) mempunyai kolum gabungan_ pekerja yang menyimpan nilai id dan mempunyai kunci asing untuk entiti Pekerja .

4. @SertaiColumns

Dalam situasi ketika kita ingin membuat beberapa lajur bergabung, 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 menunjukkan lajur ID dan ZIP dalam entiti Alamat :

5. Kesimpulan

Dalam artikel ini, kami telah mempelajari cara menggunakan anotasi @JoinColumn . Kami telah menunjukkan contoh bagaimana membuat persatuan entiti tunggal dan pengumpulan elemen.

Seperti biasa, semua kod sumber tersedia di GitHub.