【问题标题】:Creating instances of model objects with database defaults in Play在 Play 中使用数据库默认值创建模型对象的实例
【发布时间】:2012-03-19 21:40:20
【问题描述】:

我正在 Scala 中试验 Playframework v2 的 Anorm 库。 我有一个像下面这样的案例类

case class User (
  id:Pk[Long] = NotAssigned, // auto increment value in mysql   
  name: String
  updated_at: Date // assigned through a trigger by Database
  )

val testUser = new User(NotAssigned:Pk[Long], "Ali", null)

是否发现将 null 用于诸如 updated_at 之类的字段,这些字段的值直接通过 DB 分配?使用像 Pk[Date] 这样的东西怎么样?我想我没有正确理解 Anorm 中的 Pk 类型。

感谢您的 cmets,

【问题讨论】:

    标签: scala playframework-2.0 anorm


    【解决方案1】:

    我认为分配null 值绝不是一个好主意。我改用默认日期。然后,在构造 User 类型的新值时应该省略默认值(Scala 的案例类不需要 new 关键字):

    case class User (
      id:Pk[Long] = NotAssigned,
      name: String
      updated_at: Date = new Date(0) //1970-01-01
      )
    
    val testUser = User("Ali")
    

    【讨论】:

      【解决方案2】:

      如果该值是由您的数据库自动设置的,则您不需要自己设置它。因此,它不应出现在您的 write 操作中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-12-31
        • 2013-06-03
        • 1970-01-01
        • 2015-05-14
        • 2012-10-02
        • 2019-08-29
        • 2012-05-08
        相关资源
        最近更新 更多