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 –