Slick Scala方法推断出泛型类型



所以我想实现一个特征,让一个共同的执行函数来运行slick的查询。

从下面的代码中可以看出,我有一个特征在类上有一个类型参数,另一个在方法上定义类型参数。

当我编译时,带有方法泛型类型的特征编译(不给出任何类型参数(,但另一个没有。

为什么???我试图给类类型参数 UserTable 或 User(我的光滑表格定义和投影案例类(,但它们都不起作用。错误只是说"期望DBIO[UserTable],但实际的MySQLDriver.StreamingDriverAction">

任何帮助真的非常感谢。

多谢!!!

class DAO @Inject()(val configProvider: DatabaseConfigProvider) extends 
    ManagementAppDatabase {
    private val users = TableQuery[UserTable]
  def findUserByEmail(email: String): Future[Option[User]] = {
    execute(users.filter(_.email === email).result.headOption)
  }
}
trait ManagementAppDatabase {
  val configProvider: DatabaseConfigProvider
 def execute[T](dBIO:DBIO[T]): Future[T] = configProvider.get[JdbcProfile].db.run(dBIO)
}
trait ManagementAppDatabase[T] {
  val configProvider: DatabaseConfigProvider
 def execute (dBIO:DBIO[T]):Future[T]=configProvider.get[JdbcProfile].db.run(dBIO)
}

如果你扩展例如 ManagementAppDatabase[User],那么您只能在DBIO[User]上呼叫execute。但users.filter(_.email === email).result.headOptionDBIO[Option[User]].就是这样。

最新更新