创建通用更新计数器方法

Bla*_*man 3 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
}
Run Code Online (Sandbox Code Playgroud)

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

我收到此错误:

[PSQLException: ERROR: syntax error at or near "$1" Position: 20]
Run Code Online (Sandbox Code Playgroud)

Dim*_*tri 11

尝试更换$column#$column.$用于绑定变量,它不适用于列或表名等标识符,而#$s""字符串插值一样只是字符串替换.

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