2016-09-14 2 views
1
case class Account(var email:String, var pass:String, var familyId: Int, var accessId: Int, id: Option[Int] = None) 

// A Accounts table with 5 columns: id, email, pass, familyId, accessId 
class Accounts(tag: Tag) extends Table[Account](tag, "ACCOUNTS") { 

    def id = column[Int]("ID", O.AutoInc, O.PrimaryKey) 
    def email = column[String]("EMAIL") 
    def pass = column[String]("PASS") 
    def familyId = column[Int]("FAMILY_ID")       // TODO: add fk family_id 
    def accessId = column[Int]("ACCESS_ID")       // TODO: add fk access_id 

    def * = (email, pass, familyId, accessId, id.?) <> (Account.tupled, Account.unapply) 

} 

이러한 구조로 테이블을 만든 후에는 테이블의 모든 열이 Not Null입니다.열 기본값을 Null로 설정하는 방법? (매끄러운 상태)

어떻게 Nullable로 설정하고 Null에 자신의 값을 설정하는 방법?

+0

난 당신이 아마 ([매끄러운 코드 생성기를 사용] 할 생각 http://slick.lightbend.com/doc/3.0 .0/code-generation.html)이 물건을 생성합니다 ... (이 질문에 대답하지 않습니다, 나도 알아 ... 희망이 있구만 의문을 만드는!). 질문에 대한 실제 대답은 값에 대한 옵션으로 열을 선언 포함,하지만 우리는이 물건을 생성하기 때문에, 나는 세부 사항 : – GreenAsJade

답변

4

우리는 우리가 User 클래스를 가지고 우리가 age 값이 nullable되고 싶은 나이의 기본값은 null 말할 수 있습니다 nullablecase class

에서 Option[T] 같다 필드를 선언하여이 작업을 수행 할 수 있습니다. 그래서 우리는 아래처럼 클래스를 선언합니다. 고시 연령은 Option[Int]입니다.

case class User(name: String, age: Option[Int]) 

class Users(tag: Tag) extends Table[User](tag, "users") { 
    def name = column[String]("name") 
    def age = column[Option[Int]]("age", O.Default(None)) //notice default value is None which translates to Null in database 
    def * = (name, age) <> (User.tupled, User.unapply) 
} 

나이 필드가 Null을 허용하고 기본 값이 null

+0

당신에게 많은 감사를 이해하는 데 필요하지 않은! –

관련 문제