Jika kueri cascading terjadi secara hibernasi, mungkin ada masalah pemuatan malas. Misalnya, saya sekarang memiliki kelas akun (administrator), kategori (kategori produk) dan kelas produk (produk). Dari kiri ke kanan, ini adalah hubungan satu-ke-banyak, dan dari kanan ke kiri, @manytoOne (fetch = fetchType.lazy) diatur. Saya sekarang ingin mengetahui informasi produk dan mengemasnya ke dalam format JSON untuk meneruskannya ke meja depan. Saya menggunakan pernyataan kueri di latar belakang sebagai:
Dari Produk P Left Join Fetch P.Category Where P.Name Like: Name
Dengan cara ini, Anda dapat mengetahui produknya, dan kemudian kategori dalam produk juga dimasukkan. Namun, akun dalam kategori bukan objek aktual, tetapi objek proxy sementara. Ini mudah dimengerti, karena saya memeriksa produk dan hanya kategori bertingkat. Adapun kategori dan akun, itu dikonfigurasi sesuai dengan yang sebenarnya (malas).
Sekarang masukkan produk kueri ke dalam peta, dan kemudian konversinya ke format JSON dan kembali ke meja depan, pasti akan ada masalah pemuatan malas, karena objek akun akan diambil selama proses mengonversi JSON, tetapi sesi telah ditutup pada saat ini, jadi kesalahan akan dilaporkan. Solusi yang sangat langsung tetapi tidak terlalu baik adalah mengubah malas dalam kategori menjadi bersemangat, sehingga informasi akun dapat ditemukan, tetapi ini tidak baik. Jadi kami menggunakan metode lain: atur daftar hitam di struts.xml, dan gunakan ekspresi reguler untuk menyaring akun dalam kategori saat mengonversi ke format JSON, jadi kami tidak akan memeriksa objek akun, dan tidak akan ada masalah pemuatan yang malas. sebagai berikut:
Pada titik ini, seharusnya tidak ada masalah. Namun, dalam proyek saya, saya masih melaporkan pengecualian pemuatan malas, yang berarti tidak berhasil setelah saya mengonfigurasi dengan cara ini. Tetapi secara teoritis, setelah konfigurasi, itu akan baik -baik saja, dan data dapat dikemas ke dalam format JSON dan diteruskan ke meja depan secara normal. Masalah ini mengganggu saya selama dua hari, jadi saya hanya mengubah malas menjadi bersemangat dan mulai melakukan proyek.
Hari ini saya menghubungi pengecualian di sini dengan pengecualian hibernasi lain dan menyelesaikannya! Hari ini di Hibernate, saya ingin memanggil metode GET untuk mendapatkan informasi produk, tetapi saya tidak bisa mendapatkannya. Tidak ada pesan di konsol latar belakang. Karena saya menyalakan mode dev, meja depan menampilkan pesan kesalahan:
java.lang.classcastException: cn.it.shop.model.product _ $$ _ javassist_0 tidak dapat dilemparkan ke javassist.util.proxy.proxy </span>
Tidak dapat dikonversi ke proxy? ? Mengapa berubah menjadi agen? Secara umum, bukankah agen tidak dapat dikonversi menjadi objek yang sebenarnya? Jadi saya mencari di internet dan menemukan bahwa masalah ini mungkin karena paket Jar Javassist dalam proyek yang bertentangan. Saya pergi ke proyek untuk memeriksanya, dan ternyata benar:
Ini benar-benar bertentangan ... jadi saya hanya menghapus javassist-3.11.0.ga.jar dalam paket struts. Hibernate benar, dan Anda bisa mendapatkan informasi produk secara normal. Lalu saya ingat masalah Struts2 beralih ke JSON 2 hari yang lalu, jadi saya kembali untuk berubah dengan bersemangat kembali ke malas. Masalahnya hilang dan saya juga bisa mengonversi ke JSON secara normal. Saya tertekan. Itu benar -benar disebabkan oleh konflik antara paket toples. Karena tidak ada kesalahan pada waktu itu, tetapi saya tidak dapat menemukan data JSON yang dikembalikan di meja depan. Saya hanya tahu bahwa data JSON tidak dikembalikan. Itu harus menjadi masalah dengan transfer latar belakang ke JSON. Menurut pengalaman yang ada, 90% di antaranya malas memuat, tetapi saya tidak berharap itu disebabkan oleh konflik paket jar.
Kemudian: Jika paket JAR tidak bertentangan tetapi tidak dapat mengonversi JSON, pada dasarnya adalah masalah yang disebabkan oleh pemuatan malas. Metode memfilter objek pemuatan malas dengan mengkonfigurasi daftar hitam di struts.xml sangat praktis. Tidak perlu memodifikasi konfigurasi di pojo. Saya akan mentransfer bidang mana yang ingin saya transfer ke JSON, dan jika saya tidak mau, itu sangat nyaman.
Tautan asli: http://blog.csdn.net/eson_15/article/details/51394302
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.