这是我使用Slick 2.1,
更新一行表的方法private def updateEntity(id: Long, row: TTable#TableElementType) = {
db.withSession { implicit session =>
val result = query.filter(_.id === id).update(row)
result.toLong
}
}
升级到Reactive Slick后,db.withSession
显示弃用警告,因为不推荐使用withSession。是什么
基于动作的api语法,用于更新行。
答案 0 :(得分:3)
Slick 3.0使用纯功能,单一I / O而没有副作用。在基于行动的API中,您必须使用db.run
,Query
并返回Future
。
所以在你的情况下,它将是
private def updateEntity(id: Long, row: TTable#TableElementType): Future[Long] = {
db.run(query.filter(_.id === id).update(row)).map(_.toLong)
}
}