Aus meiner Erfahrung werde ich Ihnen sagen. Es gibt zwei Szenarien
1) Sie möchten einen Parameter in der Abfrage angeben, dessen Wert dynamisch festgelegt wird.
eg: where user_id = :userId
Hier werden Sie kein Problem bekommen, wenn Sie Parameter mit dem gleichen Namen wie "userId" setzen;
2) Sie typisieren den Wert
eg: select count(id) :: integer
Wenn Sie dies tun, müssen Sie das Escape-Zeichen verwenden, sonst denkt Hibernate, dass es sich um einen Parameter handelt. Und es wird ein Fehler ausgegeben "Alle Parameter sind nicht gesetzt" Sie können dies umgehen, indem Sie Code mit dem Escape-Zeichen
schreibeneg:select count(id) \\:\\: integer
Das wird also Ihr Problem lösen. Und wenn Sie fälschlicherweise einen Schrägstrich anstelle eines Rückwärtsschrägstrichs verwenden, erhalten Sie den Fehler "Leerzeichen ist nach dem Präfix nicht zulässig"
Wrong: select count(id)//://: integer
Right: select count(id)\\:\\: integer
Aber ich habe Ihnen dringend empfohlen, die CAST-Funktion anstelle von "::"
zu verwenden Dieser Operator select CAST(count(id) as integer)
Es ist die bessere Art der Typumwandlung und führt zu minimalen Fehlern