2013-05-21 13 views
8

के लिए Joda Datetime अंतर्निहित रूपांतरण मैं Joda Datetime क्षेत्र के साथ ऐसा वर्ग है:ReactiveMongo 0.9: Macros.handler

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 

लेकिन मुझे जानकारी नहीं मिली है कि मेरे अपने निहित परिवर्तक को कैसे कार्यान्वित किया जाए। (2 प्रकार पैरामीटर होने

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) 
} 

उत्तर

16

existing handlers के लिए स्रोत कोड को देखते हुए, आप इस (परीक्षण नहीं) की तरह एक अंतर्निहित रूपांतरण बनाने के लिए कोशिश कर सकते 0.9):

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) 
} 
+0

परीक्षण, सही काम कर रहा है। –

2

एक और दृष्टिकोण नई BSONReader & BSONWriter उपयोग करने के लिए है:

संबंधित मुद्दे