私は残念なことに、変数名が可変なので準備文として書くことはできません。このため、私は文字列フォーマットを使用してSQLを構築する必要があります。私が使用している言語はPostgreSQLですが、私のクエリにString.formatがあるため、IntelliJは自分のコードの構文エラーについて苦情を言います。私はIntelliJのが適切にこの文字列を認識させるにはどうすればよいIntelliJ Inject Language with String.format
public class Example {
public String getUniqueFeatureCountSqlQuery(String feature, Long sourceUserId) {
//language=PostgreSQL
return String.format("SELECT COUNT(DISTINCT targetUserId), %s FROM userComments GROUP BY %s WHERE userId = %d",
feature, feature, sourceUserId);
}
}
? String.formatで最初にフォーマットされたPostgreSQLであることを知っておく必要があります。
可変列名とはどういう意味ですか?名前は私にハードコーディングされて見える。これはあなたにSQLインジェクションに脆弱なままにしないでしょうか? –
@TimBiegeleisen私の間違い。私は私の質問を編集したので、今はもっと明確にすべきです。 「フィーチャ」が既に消されていると仮定する。 – michaelsnowden
これはこの修正されたバグに関連しているようですが、動作させることができませんでした。 https://youtrack.jetbrains.com/issue/IDEA-139305 –