Mongodb ReactiveMongo 0.9:宏的Joda Datetime隐式转换.handler

Mongodb ReactiveMongo 0.9:宏的Joda Datetime隐式转换.handler,mongodb,scala,jodatime,implicit-conversion,Mongodb,Scala,Jodatime,Implicit Conversion,我有joda Datetime字段的案例类: case DomainPositionData(domain: String, position: Int, change: Option[Int], date:DateTime) 正在尝试使用宏生成读写器: implicit val domPosFormat = Macros.handler[DomainPositionData] 我得到: Implicit org.joda.time.DateTime for 'value date' not

我有joda Datetime字段的案例类:

case DomainPositionData(domain: String, position: Int, change: Option[Int], date:DateTime)
正在尝试使用宏生成读写器:

implicit val domPosFormat = Macros.handler[DomainPositionData]
我得到:

Implicit org.joda.time.DateTime for 'value date' not found

但是我还没有找到如何实现我自己的隐式转换器的信息。

查看的源代码,您可以尝试创建这样的隐式转换(未测试):


另一种方法是使用新的BSONReader和BSONWriter(在0.9中有两个类型参数):

import org.joda.time.DateTime

implicit object BSONDateTimeHandler extends BSONHandler[BSONDateTime, DateTime] {
  def read(time: BSONDateTime) = new DateTime(time.value)
  def write(jdtime: DateTime) = BSONDateTime(jdtime.getMillis)
}
implicit object DatetimeReader extends BSONReader[BSONDateTime, DateTime]{
    def read(bson: BSONDateTime): DateTime = new DateTime(bson.value)
}

implicit object DatetimeWriter extends BSONWriter[DateTime, BSONDateTime]{
    def write(t: DateTime): BSONDateTime = BSONDateTime(t.getMillis)
}