Rumah  >  Artikel  >  Java  >  Bagaimanakah `MappedBy` dalam JPA dan Hibernate Mencegah Ketidakkonsistenan Data dalam Perhubungan Dwiarah?

Bagaimanakah `MappedBy` dalam JPA dan Hibernate Mencegah Ketidakkonsistenan Data dalam Perhubungan Dwiarah?

Barbara Streisand
Barbara Streisandasal
2024-11-01 12:14:30575semak imbas

How Does `MappedBy` in JPA and Hibernate Prevent Data Inconsistencies in Bi-directional Relationships?

Memahami MappedBy dalam JPA dan Hibernate

Dalam pemetaan hubungan objek (ORM), hubungan dua arah antara entiti memerlukan pengendalian yang teliti untuk mengelakkan gelung tak terhingga atau keadaan data yang tidak konsisten . MappedBy ialah atribut dalam anotasi JPA dan Hibernate yang menyelesaikan isu ini.

Memahami Peranan MappedBy:

MappedBy menentukan entiti mana yang memiliki perhubungan dan memiliki kunci asing lajur dalam pangkalan data. Ia digunakan pada anotasi pemetaan entiti bukan pemilik, yang menunjukkan bahawa perhubungan dipetakan oleh kunci asing dalam jadual entiti pemilik.

Syor Penggunaan:

Apabila mentakrifkan perhubungan dua hala, adalah disyorkan untuk mengikuti garis panduan ini:

  • Kenal pasti entiti pemilik.
  • Tambah anotasi @JoinColumn pada pemetaan entiti pemilik, dengan menyatakan kunci asing lajur.
  • Tambah anotasi @JoinTable jika anda memerlukan jadual gabungan antara entiti.
  • Gunakan anotasi @MappedBy pada pemetaan entiti bukan pemilik, merujuk nama medan pemetaan entiti pemilik.

Contoh:

Dalam entiti Syarikat Penerbangan dan Syarikat Penerbangan anda, Syarikat Penerbangan hendaklah menjadi pemilik perhubungan itu. Anotasi yang betul ialah:

<code class="java">// Airline.java
@OneToMany(mappedBy = "airline")
public Set<AirlineFlight> getAirlineFlights() { return airlineFlights; }

// AirlineFlight.java
@ManyToOne
@JoinColumn(name = "IDAIRLINE")
public Airline getAirline() { return airline; }</code>

Tujuan MappedBy:

MappedBy mempunyai dua tujuan utama:

  • Menentukan entiti yang memiliki dalam perhubungan dwiarah, menghalang pertindihan kunci asing.
  • Membenarkan lintasan perhubungan daripada sama ada entiti tanpa membuat gelung rekursif atau isu ketidakkonsistenan data lain.

Atas ialah kandungan terperinci Bagaimanakah `MappedBy` dalam JPA dan Hibernate Mencegah Ketidakkonsistenan Data dalam Perhubungan Dwiarah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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