私は多くの関連する質問を見ましたが、それらのどれも私の問題ではありません。Hibernate Query Escaping(Grails 'GORMから) - again
一般的な質問:特にGrails GORMの場合、Hibernateでどのようにエスケープされるのかが正確に指定されていますか?
特に問題:
私はこれを実行する:
"WHERE extractValue(field, '//value[@my_attribute=\""+localeStr+"\"]')"
あなたが気づくことができ、localeStrは脱出し、文字列の別の文字列に含まれていません。 可能であればパラメータを使ってエスケープするにはどうすればいいですか?
ありがとうございました。
あなたは正しいので、localeStrをパラメータとして渡す必要があります。しかし、そうではありません。どういうわけか。 「attrValueは「my string」のようなものに置き換えられ、そのコンテキストでは次のようになります。 「extractValue(field、 '// value [@ my_attribute =' my string ']'」「 見ることができます、 ''は、正しいエスケープ文字ではありません。 – icvg