Rumah >Java >javaTutorial >Bagaimana untuk Menyelesaikan Ralat 'Rujukan Objek Tidak Disimpan Contoh Sementara' Hibernate?
Apabila cuba menyimpan objek menggunakan Hibernate, anda mungkin menghadapi ralat berikut:
object references an unsaved transient instance - save the transient instance before flushing
Memahami Ralat
Ralat ini menunjukkan bahawa anda mempunyai koleksi dalam entiti anda yang mengandungi satu atau lebih item yang tidak terdapat dalam pangkalan data. Hibernate memerlukan semua entiti yang dirujuk oleh entiti lain sama ada disimpan (berterusan) dalam pangkalan data atau ditandakan sebagai sementara.
Resolusi
Penyelesaian kepada ralat ini adalah untuk menentukan pilihan lata untuk pemetaan koleksi anda. Anda boleh melakukan ini sama ada menggunakan XML atau anotasi:
XML:
<collection name="collectionName" cascade="all"> ... </collection>
Anotasi:
@OneToMany(cascade = CascadeType.ALL) private List<ChildEntity> collectionName;
Penjelasan
Dengan menyatakan pilihan cascade="all" atau CascadeType.ALL, anda mengarahkan Hibernate untuk menyimpan semua entiti dalam koleksi ke pangkalan data apabila menyimpan entiti induk. Ini memastikan bahawa semua entiti yang dirujuk kekal dalam pangkalan data dan menyelesaikan ralat.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat 'Rujukan Objek Tidak Disimpan Contoh Sementara' Hibernate?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!