Spring Data Mongo转换Joda LocaDateTime

时间:2012-01-25 11:42:09

标签: java spring mongodb

我正在使用Joda LocalDateTime,转换为Mongo BSON的默认行为以这样的结尾:

"myTime":{
   "iLocalMillis":1327144433115,
   "iChronology":{
      "_class":"org.joda.time.chrono.ISOChronology",
      "iBase":{
         "_class":"org.joda.time.chrono.GregorianChronology",
         "iMinDaysInFirstWeek":4
      }
   }
}

转换回java对象时会出现问题。

如何在保存到Mongo时更改某些Java类型的行为?因为我有其他几个类与默认转换有相同的问题。

我正在使用spring 3.1 + data + mongo stack。

3 个答案:

答案 0 :(得分:1)

自定义转换器的使用记录在the reference documentation

答案 1 :(得分:1)

我遇到了同样的问题。要使用Oliver的转换器解决方案,我必须为每个类创建转换器具有jodatime属性,这有点烦人。我找不到如何为特定类型的所有域类配置转换器。我最终创建了AbstractMongoEventListener的子类,然后在保存之前和加载之后重置datetime字段。希望这可以帮助。

答案 2 :(得分:0)

正如奥利弗指出的那样,使用自定义转换器。注意DATAMONGO-1026中描述的大事。该问题还有自定义转换器的示例,并且有望很快关闭。