Slick 3.0.3 TableQuery insert 和 insertOrUpdate 方法在哪里?

Slick 3.0.3 TableQuery where are the insert and insertOrUpdate methods?

我正在使用 Slick 3.0.3,但找不到任何 insertinsertOrUpdate 函数应该在 slick.lifted.TableQuery 中可用,我的 IDE 什么也看不到甚至接近,当我去 Scala Docs slick.lifted.TableQuery 我看到这些方法不再可用......你现在如何在 Slick 3.0.3 上更新?例如

import slick.lifted.TableQuery 

// generated code 
class Fund(_tableTag: Tag) extends Table[FundRow](_tableTag, "fund") {...}
lazy val Fund = new TableQuery(tag => new Fund(tag))

// client code
val fundQuery = TableQuery[Fund]
fundQuery.insertOrUpdate(...) // not found 

要访问 table 功能,您需要为正在使用的驱动程序的 API 添加导入;例如,对于 H2:

import skick.driver.H2Driver.api._

此时您应该可以使用函数插入数据库:

val insertAction: DBIO[Int] = fundQuery += aFund
val insertOrUpdateAction: DBIO[Int] = fundQuery.insertOrUpdate(aFund)

值得注意的是这些函数return一个DBIO然后你需要运行使用一个数据库实例来得到一个Future:

val result: Future[Int] = someDb.run(insertAction)