JPA クエリ内の '':' 文字のエスケープ
コロン (':') を使用するネイティブ JPA クエリを実行しようとする場合文字を使用すると、コロンの後のスペースの使用を禁止するエラーが発生する可能性があります。これは、特に質問で説明されているような特定のシナリオに対処する場合に、イライラする問題になる可能性があります。
これらの文字をバックスラッシュ () でエスケープしたり、2 つ重ねたりすることは、効果がないことが証明されています。この問題を解決するには、次の解決策を検討してください。
提供された回答に示されているように、コロンを二重バックスラッシュ () でエスケープすると、JPA がクエリを正しく解釈できるようになります。これにより、名前付きパラメータ ':json' が適切に認識され、クエリを正常に実行できるようになります。
この解決策を質問に示されている例に適用すると、変更されたクエリは次のようになります。
SELECT foo, bar, baz, \@rownum:= if (\@id = foo, \@rownum+1, 1) as rownum, \@id := foo as rep_id FROM foo_table ORDER BY foo, bar desc
この修正を実装すると、以前のエラーが発生することなくコロン文字を効果的にエスケープし、ネイティブ JPA クエリを実行できます。
以上がJPAネイティブクエリでコロン文字をエスケープするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。