2
我有一個SQL查詢,不幸的是不能寫爲一個準備好的語句,因爲它有可變的列名稱。正因爲如此,我必須使用字符串格式來構建我的SQL。我使用的語言是PostgreSQL,但是因爲我的查詢中有String.format,所以IntelliJ在我的代碼中抱怨語法錯誤。IntelliJ插入語言與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);
}
}
如何使的IntelliJ正確識別這個字符串?它應該知道它是由String.format首先格式化的PostgreSQL。
你是什麼意思的可變列名稱?這些名字看起來硬編碼給我。這不會讓你容易受到SQL注入的影響嗎? –
@TimBiegeleisen我的錯誤。我編輯了我的問題,所以現在應該更清楚了。假設「功能」已被消毒。 – michaelsnowden
它似乎與這個固定的錯誤有關,但我無法讓它工作。 https://youtrack.jetbrains.com/issue/IDEA-139305 –