在以下代码中:
val users = TableQuery[Users]
def getUserById(id:Int) = db(users.filter(_.id === id).result)
根据我的理解, getUserById 将创建一个准备好的语句 每次 执行getUserById然后丢弃。有没有办法缓存预准备的语句,因此它只创建一次并多次调用。
答案 0 :(得分:4)
documentation for Slick表示您需要在连接池配置上启用预准备语句缓存。
这里也是quite a good article。
总结是Slick似乎缓存了用于准备实际语句的字符串,但是将实际预准备语句的缓存委托给底层连接池实现。