我有一个SQL查询,遗憾的是它不能写成预准备语句,因为它有可变的列名。因此,我必须使用String格式化来构建我的SQL。我使用的语言是PostgreSQL,但由于我的查询中有String.format,IntelliJ会在我的代码中抱怨语法错误。
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正确识别此字符串?它应该知道它是PostgreSQL,它首先由String.format格式化。
答案 0 :(得分:2)
感谢@WillHumphreys我通过youtrack找到了解决方案。
您必须转到工具下的用户参数设置 - >数据库 - >用户参数,或使用查找操作命令。
然后进行这些更改。
在尝试alt-enter在控制台中运行查询时,您可能还必须使用参数索引字符串格式表示法(String.format("SELECT %1s ...", ...)
)来区分参数。