Rumah >Java >javaTutorial >Bagaimana untuk Membetulkan Ralat 'Rujukan Objek dan Contoh Sementara yang Tidak Disimpan' Hibernate?

Bagaimana untuk Membetulkan Ralat 'Rujukan Objek dan Contoh Sementara yang Tidak Disimpan' Hibernate?

DDD
DDDasal
2024-12-13 07:20:14200semak imbas

How to Fix Hibernate's

Membetulkan Ralat "Rujukan Objek dan Contoh Sementara yang Tidak Disimpan" Hibernate

Ralat "objek merujuk contoh sementara yang tidak disimpan" dalam Hibernate berlaku apabila mencuba untuk menyimpan objek dengan objek berkaitan yang belum disimpan tanpa menentukan lata dengan betul operasi.

Punca:

Ralat ini timbul apabila entiti mempunyai sifat koleksi yang mengandungi kejadian baharu yang masih belum disimpan ke pangkalan data. Hibernate cuba menyimpan kejadian baharu ini secara automatik apabila objek induk dikekalkan, tetapi gagal jika atribut lata tidak ditetapkan dengan sewajarnya.

Penyelesaian:

Untuk menyelesaikan isu ini , anda perlu menentukan atribut lata pada pemetaan koleksi anda. Ini memberitahu Hibernate untuk menyimpan objek berkaitan secara automatik apabila objek induk disimpan.

Jika menggunakan pemetaan XML, tambahkan yang berikut pada pemetaan koleksi anda:

<set name="relatedObjects" inverse="true" cascade="all">
    <key column="parent_id"/>
    <one-to-many class="RelatedObject" column="related_id"/>
</set>

Jika menggunakan anotasi, tambah mengikuti kepada harta koleksi anda:

@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
private Set<RelatedObject> relatedObjects;

Dengan menyatakan lata=semua, anda mengarahkan Hibernate untuk meneruskan yang berkaitan objek bersama dengan objek induk dalam satu transaksi. Ini memastikan bahawa semua objek yang diperlukan disimpan ke pangkalan data dan ralat "contoh sementara yang tidak disimpan" dielakkan.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat 'Rujukan Objek dan Contoh Sementara yang Tidak Disimpan' Hibernate?. 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