我正在努力迁移到光滑2但是我遇到了一个我似乎无法在任何地方找到的课程。
package learningSlick
import scala.slick.driver.MySQLDriver.simple._
case class Supplier( snum: String, sname: String, status: Int, city: String )
class Suppliers(tag: Option[String]) extends Table[Supplier](tag, "suppliers") {
def snum = column[String]("snum")
def sname = column[String]("sname")
def status = column[Int]("status")
def city = column[String]("city")
def * = snum ~ sname ~ status ~ city <> (Supplier, Supplier.unapply _)
}
以下是教程中的代码:
import scala.slick.driver.PostgresDriver.simple._
class Suppliers(tag: Tag) extends Table[(String, String, Int, String)](tag, "suppliers") {
def snum = column[String]("snum")
def sname = column[String]("sname")
def status = column[Int]("status")
def city = column[String]("city")
def * = (snum, sname, status, city)
}
在Table的定义中,它表示Tag的类型为Option [String],但是在我正在阅读的教程中,它只使用了一种Tag。我正在寻找这个来自哪个包。
答案 0 :(得分:10)
检查表的定义,我们可以看到它的类型为Tag
:Table definition不知道您在哪里阅读或发现它的类型为Option[String]
。
点击Tag
会显示代码定义:Tag definition
所以回答你的问题,它来自scala.slick.lifted
包。
您不需要实际创建Tag
,因为您使用val suppliers = TableQuery[Suppliers]
构造进行查询,该构造负责处理所有Tag
相关内容。