提升(Mongo)从另一个字段自动计算的记录字段

时间:2014-02-04 01:55:28

标签: mongodb lift lift-mapper lift-record

我有一个字段,它包含一个日期时间和一个非规范化字段,用于存储与unix时间戳相同的日期时间值(出于我目前无法控制的原因)。

我希望timestamp字段始终与“main”datetime字段同步,并且最好甚至不能从该记录类的方法外部写入(但仍然可读和可查询)。

我查看了LifecycleCallbacks(根据一些较旧的文档可以使用,但现在可以用于Field类型而不是Record类型)以及特殊用途Field类型(例如AutoFieldComputedField)无济于事。

我应该考虑实施自定义Field,还是我忽略了一些明显的东西?我正在使用版本Lift 2.6-M2

class Job private() extends MongoRecord[Job] with ObjectIdKey[Job] {
  ...
  object regDate extends JodaTimeField(this)
  object regDateUnixtime extends LongField(this)
  ...
}

1 个答案:

答案 0 :(得分:2)

你有没有试过像

这样的东西
private object regDateUnixtime extends LongField(this)

object regDate extends JodaTimeField(this) {

  override def setBox(in: Box[DateTime]) = {
    super.setBox(in) map { v => 
      regDateUnixtime(v.getMillis) 
      v
    }
  }

}