在 Slick 中,可以在宏中编写一个查询,并将其转换为一个非常好的查询,具有一个类型,例如像这样:
db.run(sql"""SELECT COUNT(1) FROM myTable""")
但是有没有办法在参数中传递表名,像这样:
val tableName = "myTable"
db.run(sql"""SELECT COUNT(1) FROM $tableName""")
我试过了,我所看到的只是查询转换为
"SELECT COUNT(1) FROM $1"
,这可能暗示需要提供表名作为语句参数——但是如何呢?文档中没有任何内容。
你可以在不应该被“解释”的变量前使用
#
:
val tableName = "myTable"
db.run(sql"""SELECT COUNT(1) FROM #$tableName""")
查看文档:https://scala-slick.org/doc/devel/sql.html#splicing-literal-values