我有大量的Slick表格,ID
列定义为
def id = column[Int]("ID", O.PrimaryKey, O.AutoInc, O DBType "INT UNSIGNED")
我想知道是否有办法创建一个自定义IDPK
类型,以某种方式“暗示”使用上面显示的各种选项,例如。
case class IDPK(id: Int) extends AnyVal
def id = column[IDPK]("ID")
// O.PrimaryKey, O.AutoInc, O DBType "INT UNSIGNED" are all implied
我意识到我可以按照def makeIDPK = column[Int]("ID", .....)
的方式创建一个便利函数,但我的问题是关于是否可以使某种类型暗示某些列选项。
我注意到,如果我运行show create table <tablename>
,则有一些我没有明确说明的选项,例如非选项列的NOT NULL
或选项列的DEFAULT NULL
。因此,我希望得到一个“是”的答案,但在查看Slick文档时我无法找到类似的内容。
答案 0 :(得分:-1)
您可以定义一个接收类型并创建列的函数。类似的东西:
def makeColumn[T](name: String): Column[Int] =
column[Int](name, O.PrimaryKey, O.AutoInc, O DBType "INT UNSIGNED")
def id = makeColumn("id")