Dalam Hibernate, apabila menggunakan pertanyaan asli yang melibatkan pengendali tugasan MySQL(:=), pembangun mungkin menghadapi ralat seperti sebagai "Ruang tidak dibenarkan selepas awalan parameter :". Isu ini timbul disebabkan oleh pengehadan dalam pengendalian Hibernate terhadap operator penyerah hak.
Untuk menyelesaikan isu ini, pengguna yang terjejas mesti:
Seperti yang dinyatakan dalam laporan keluaran HHH-2697, Hibernate kini menyokong melarikan diri dari operator serah hak menggunakan garis miring ke belakang. Dengan mengubah suai pertanyaan asli kepada:
SELECT k.`news_master_id` AS id, @row \:= @row + 1 AS rownum FROM keyword_news_list k JOIN (SELECT @row \:= 0) r WHERE k.`keyword_news_id` = :kid ORDER BY k.`news_master_id` ASC
Pengecualian seharusnya tidak berlaku lagi.
Selain itu, mengemas kini kepada Hibernate versi 4.1.3 atau lebih baru akan selesaikan isu ini kerana pembetulan untuk HHH-2697 telah dimasukkan ke dalam versi ini.
Dengan menggunakan salah satu daripada penyelesaian ini, pembangun boleh berjaya menggunakan pengendali tugasan MySQL dalam pertanyaan asli Hibernate mereka tanpa menghadapi ralat.
Atas ialah kandungan terperinci Bagaimana Menggunakan Operator Tugasan MySQL dalam Pertanyaan Asli Hibernate?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!