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

Bagaimana untuk menggunakan MySQL Assign Operator (:=) dalam Hibernate Native Queries?

Mary-Kate Olsen
Lepaskan: 2024-11-03 16:04:02
asal
483 orang telah melayarinya

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

MySQL Assign Operator dalam Hibernate Native Query

Apabila bekerja dengan Hibernate, anda mungkin menghadapi keperluan untuk menggunakan pernyataan subpilihan dalam pertanyaan asli. Pertanyaan asli membolehkan anda berinteraksi secara langsung dengan pangkalan data asas menggunakan sintaksnya sendiri.

Walau bagaimanapun, percubaan untuk menggunakan pengendali tugasan MySQL (:=) dalam pertanyaan asli dalam Hibernate boleh menyebabkan pengecualian: "Ruang ialah tidak dibenarkan selepas awalan parameter ':' ....". Ini disebabkan oleh isu yang diketahui (HHH-2697) dengan Hibernate.

Penyelesaian

Mujurlah, Hibernate 4.1.3 dan versi yang lebih baru telah menangani isu ini. Untuk menggunakan pengendali penugasan MySQL dalam pertanyaan asli, anda kini boleh melepaskannya dengan garis miring ke belakang ().

Sebagai contoh, pertimbangkan pertanyaan asli berikut:

<code class="sql">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</code>
Salin selepas log masuk

Untuk melaksanakan pertanyaan ini dalam Hibernate, gunakan kod berikut:

<code class="java">sessionFactory.getCurrentSession()
    .createSQLQuery(query)
    .setParameter("kid", kid)
    .uniqueResult();</code>
Salin selepas log masuk

Dengan melarikan diri dari operator serah hak dengan garis miring ke belakang, pertanyaan akan berjaya dilaksanakan.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan 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