2013-03-19 60 views

回答

1

是的,有。

给定一个表

object Users extends Table[(Int, String)]("users") { 
    def id = column[Int]("id") 
    def name = column[String]("name") 
} 

你可以得到的默认值id列像这样:

val driver: BasicProfile = scala.slick.driver.H2Driver //use the one appropriate to you 

val defaultValue: Int = Users.id.typeMapper(driver).zero 

引用文档:

  • TypeMapper:“TypeMapper对象代表可以在数据库中用作列类型的Scala类型“。
  • typeMapper(驱动器)产生TypeMapperDelegate其是特定于驱动器的类型映射器正在使用
  • TypeMapperDelegatezero方法给出“为类型零值”。

我还没有测试过,如果这将返回您为列定义的默认值,或者只是定义表格的一个通用零值,而不是表格。

3

Slick的表格组件提供了额外的列选项。这是通过对象O.

accesable因此,要获得为列指定一个默认值,你可以做这样的事情:

def mycolumn = column[String](
     "MYCOLUMNNAME", 
     O.DBType("VARCHAR"), 
     O.Default("Let's eat icecream")) 
+0

这是怎么定的默认值,你没怎么得到它。 – sventechie 2013-10-27 23:14:42