Rumah > pangkalan data > tutorial mysql > Bagaimana untuk melarikan diri dari MySQL Assign Operator (:=) dalam Hibernate Native Queries?

Bagaimana untuk melarikan diri dari MySQL Assign Operator (:=) dalam Hibernate Native Queries?

Susan Sarandon
Lepaskan: 2024-11-02 05:30:29
asal
556 orang telah melayarinya

How to Escape the MySQL Assign Operator (:=) in Hibernate Native Queries?

Meloloskan diri dari Operator MySQL Assign (=) dalam Pertanyaan Asli Hibernate

Apabila bekerja dengan pertanyaan asli Hibernate, ralat mungkin akan berlaku semasa menggunakan pengendali tetapkan MySQL (:=) disebabkan oleh ruang yang mengikuti titik bertindih (:). Isu ini amat jelas dalam kes di mana pernyataan subpilihan diperlukan.

Kod yang disediakan menggambarkan ini:

SELECT sub.rownum FROM (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) AS sub WHERE sub.id = :nid
Salin selepas log masuk

Melaksanakan pertanyaan ini menggunakan setParameter menghasilkan pengecualian yang menyerlahkan ruang yang salah selepas titik bertindih .

Nasib baik, Hibernate kini menyediakan penyelesaian kepada isu ini. Dalam Hibernate 4.1.3 dan yang lebih baru, anda boleh melarikan diri dari operator tetapkan menggunakan garis miring ke belakang (), seperti yang ditunjukkan di bawah:

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
Salin selepas log masuk

Dengan melarikan diri dari kolon, Hibernate berjaya mentafsir sintaks, membolehkan anda melaksanakan pertanyaan subpilihan dengan berkesan.

Atas ialah kandungan terperinci Bagaimana untuk melarikan diri dari MySQL Assign Operator (:=) dalam Hibernate Native Queries?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan