如何在 Hibernate 本機查詢中轉義 MySQL 賦值運算子 (:=)?

Susan Sarandon
發布: 2024-11-02 05:30:29
原創
511 人瀏覽過

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

在Hibernate 本機查詢中轉義MySQL 賦值(=) 運算子

使用Hibernate 本機查詢時,可能會遇到錯誤MySQL 賦值運算子(:=) 由於冒號(:) 後面有空格。在需要子選擇語句的情況下,此問題尤其明顯。

提供的程式碼說明了這一點:

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
登入後複製

使用setParameter 執行此查詢會導致異常,突出顯示冒號後的錯誤空格.

幸運的是, Hibernate 現在為這個問題提供了解決方案。在Hibernate 4.1.3 及更高版本中,您可以使用反斜線() 轉義賦值運算符,如下所示:

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
登入後複製

透過轉義冒號,Hibernate 成功解釋語法,讓您執行子選擇查詢有效。

以上是如何在 Hibernate 本機查詢中轉義 MySQL 賦值運算子 (:=)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板