2
ActiveRecord處理時間戳的方式如下:如何在我的模型中使用SORM包含時間戳(created_at和updated_at)?
- 插入數據? created_at被定義爲
- 正在更新數據? updated_at被重新定義
我該如何使用SORM?
ActiveRecord處理時間戳的方式如下:如何在我的模型中使用SORM包含時間戳(created_at和updated_at)?
我該如何使用SORM?
乍一看像這樣可以工作:
import org.joda.time._
object Db extends Instance (entities = ...) {
override def save [T <: AnyRef : TypeTag] (v : T)
= v match {
case v : Artist with Persisted =>
super.save(v.copy(updatedAt = DateTime.now()))
case v : Artist =>
super.save(v.copy(createdAt = DateTime.now()))
// ... so on for other entities
case v =>
super.save(v)
}
}
但後來你會如何從頭開始創建這些藝術家的實例?這些日期字段是否應該使用凌亂的null
或空值日期值或者是否應將其包裝在Option
s?那麼,無論是那些應該解決的問題,但這裏是另一種選擇:
import org.joda.time._
case class Artist
(name : String,
updatedAt : DateTime = DateTime.now(),
createdAt : DateTime = DateTime.now())
object Db extends Instance (entities = ...) {
override def save [T <: AnyRef : TypeTag] (v : T)
= v match {
case v : Artist with Persisted =>
super.save(v.copy(updatedAt = DateTime.now()))
case v =>
super.save(v)
}
}
我得告訴你整個問題不會覺得很自然的我。我無法想象那種有點行爲的情景。但是我再次向您介紹了選項。