Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie entkomme ich dem MySQL-Zuweisungsoperator (:=) in nativen Hibernate-Abfragen?

Susan Sarandon
Freigeben: 2024-11-02 05:30:29
Original
503 Leute haben es durchsucht

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

Escape des MySQL Assign (=)-Operators in nativen Hibernate-Abfragen

Bei der Arbeit mit nativen Hibernate-Abfragen können bei der Verwendung Fehler auftreten der MySQL-Zuweisungsoperator (:=) aufgrund des Leerzeichens nach dem Doppelpunkt (:). Dieses Problem tritt besonders deutlich in Fällen auf, in denen Subselect-Anweisungen erforderlich sind.

Der bereitgestellte Code veranschaulicht dies:

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
Nach dem Login kopieren

Das Ausführen dieser Abfrage mit setParameter führt zu einer Ausnahme, die das fehlerhafte Leerzeichen nach dem Doppelpunkt hervorhebt .

Glücklicherweise bietet Hibernate jetzt eine Lösung für dieses Problem. In Hibernate 4.1.3 und höher können Sie den Zuweisungsoperator mit einem Backslash () maskieren, wie unten gezeigt:

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
Nach dem Login kopieren

Durch das Escapezeichen des Doppelpunkts interpretiert Hibernate die Syntax erfolgreich, sodass Sie Unterauswahlabfragen ausführen können effektiv.

Das obige ist der detaillierte Inhalt vonWie entkomme ich dem MySQL-Zuweisungsoperator (:=) in nativen Hibernate-Abfragen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage