在Play中使用数据库默认值创建模型对象的实例

时间:2012-03-19 21:40:21

标签: scala playframework-2.0 anorm

我正在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类型。

感谢您的评论,

2 个答案:

答案 0 :(得分:2)

我认为分配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")

答案 1 :(得分:1)

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