创建通用更新计数器方法

时间:2014-11-27 20:05:27

标签: scala playframework slick

我试图为特定的表创建通用的计数器更新方法。

我的表有很多列只是计数器,在我的应用程序中我需要增加/减少这些计数器。

我试图创建一个这样的方法:

private def updateCounter(column: String, id: Int, incr: Int)(implicit session: Session): Unit = {
  sqlu"update table1 set $column = $column + $incr where id=$id".first
}

然后我会创建一个方法来调用它(我不想在这个Dao类之外公开这个方法)。

我收到此错误:

[PSQLException: ERROR: syntax error at or near "$1" Position: 20]

1 个答案:

答案 0 :(得分:10)

尝试将$column替换为#$column$ is used for bind variables不适用于列名或表名等标识符,而#$ is a mere string replacement like the s"" string interpolation

还要确保您的列变量不易受SQL注入攻击。