Slick 3.0.3 TableQuery insert 和 insertOrUpdate 方法在哪里?
Slick 3.0.3 TableQuery where are the insert and insertOrUpdate methods?
我正在使用 Slick 3.0.3,但找不到任何 insert
或 insertOrUpdate
函数应该在 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)
我正在使用 Slick 3.0.3,但找不到任何 insert
或 insertOrUpdate
函数应该在 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)