2013-03-19 5 views

ответ

1

Да, есть.

дана таблица

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

Вы можете получить значение по умолчанию для столбца идентификаторов типа так:

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 который является типом картостроитель специфического для водителя используется
  • zero метод на TypeMapperDelegate «дает нулевое значение для типа».

Я не тестировал, если это возвращает значение по умолчанию, заданное для столбца, когда вы определяете таблицу или просто общее нулевое значение, характерное для этого типа, но не для таблицы.

3

Компонент стола Slick предоставляет дополнительные параметры столбца. Это accesable через объект О.

Таким образом, чтобы получить значение по умолчанию, заданное для столбца, вы могли бы сделать что-то вроде этого:

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

Это, как вы _set_ значения по умолчанию, не так, как вы его получите , – sventechie

Смежные вопросы