Rumah >Java >javaTutorial >Bagaimana untuk Memperbaiki PersistentObjectException Hibernate dengan Entiti Terpisah?
Membetulkan PersistentObjectException dalam Hibernate dengan Detached Entiti
Apabila berurusan dengan model objek berkekalan JPA, operasi tertentu mungkin menghasilkan PersistentObjectException , terutamanya apabila menguruskan perhubungan. Contohnya, dalam kes perhubungan banyak dengan satu antara Akaun dan berbilang Transaksi, percubaan untuk meneruskan Transaksi dengan Akaun yang telah berterusan mungkin mencetuskan pengecualian ini.
Memahami isu asas adalah penting. Apabila anda membuat Transaksi dan menentukan Akaun sedia ada, Akaun tersebut dianggap terpisah daripada pengurus entiti. Ini berlaku kerana anda mendapatkan semula Akaun daripada konteks yang berbeza daripada konteks yang Transaksi berterusan.
Untuk menyelesaikan isu ini, laraskan jenis lata dalam anotasi Transaksi kepada CascadeType.MERGE. Ini memastikan bahawa apabila Transaksi diteruskan, Akaun yang berkaitan akan digabungkan ke dalam konteks pengurus entiti semasa, menyelesaikan isu detasmen.
Berikut ialah coretan kod yang dikemas kini:
@Entity public class Transaction { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; @ManyToOne(cascade = {CascadeType.MERGE}, fetch = FetchType.EAGER) private Account fromAccount; }
Dengan melaksanakan perubahan ini, anda akan berjaya meneruskan Transaksi dengan Akaun yang telah berterusan, menghapuskan PersistentObjectException.
Atas ialah kandungan terperinci Bagaimana untuk Memperbaiki PersistentObjectException Hibernate dengan Entiti Terpisah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!