Rumah  >  Artikel  >  Java  >  Bagaimana Mengendalikan Nod Yatim dalam JPA dengan CascadeType.ALL?

Bagaimana Mengendalikan Nod Yatim dalam JPA dengan CascadeType.ALL?

Susan Sarandon
Susan Sarandonasal
2024-11-01 01:17:02634semak imbas

How to Handle Orphaned Nodes in JPA with CascadeType.ALL?

Nod Yatim dalam JPA dengan CascadeType.ALL

Walaupun menggunakan CascadeType.ALL JPA, nod yatim tetap ada dalam pangkalan data, menghalang pemadaman. Untuk menyelesaikan isu ini, terdapat beberapa pendekatan bergantung pada penyedia kegigihan dan versi JPA:

Konfigurasi Hibernate

Jika menggunakan Hibernate, tentukan secara eksplisit anotasi CascadeType.DELETE_ORPHAN dalam sempena JPA CascadeType.ALL:

@OneToMany(cascade = {CascadeType.ALL, CascadeType.DELETE_ORPHAN})
private List<Bikes> bikes;

Penyelesaian JPA (tanpa Hibernate)

Jika tiada Hibernate, padamkan elemen anak secara eksplisit sebelum mengalih keluar rekod induk:

  1. Ambil baris utama untuk menjadi dipadamkan.
  2. Ambil elemen kanak-kanak.
  3. Padamkan semua elemen kanak-kanak.
  4. Padamkan baris utama.
  5. Tutup sesi.

JPA 2.0

JPA 2.0 memperkenalkan atribut orphanRemoval:

@OneToMany(mappedBy="foo", orphanRemoval=true)

Dengan menetapkan orphanRemoval kepada benar, JPA akan memadam rekod anak yatim piatu secara automatik apabila entiti induk dialih keluar.

Atas ialah kandungan terperinci Bagaimana Mengendalikan Nod Yatim dalam JPA dengan CascadeType.ALL?. 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