2012-01-25 47 views
0

我使用的喬達LocalDateTime並轉換爲蒙戈BSON結束了像這樣的默認行爲:春數據蒙戈轉換喬達LocaDateTime

"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。

+0

謝謝,奧利弗。但有幾件事情還不清楚:1)即使只有一個對象需要重寫,我們也需要重新定義整個實體; 2)它不尊重使用mongoTemplate的JPA生命週期註釋。我們有JPA嗎? 3)我使用java 3.1的配置,並沒有想出如何把轉換器放在afterMappingMongoConverterCreation()中。 – jfd

回答

1

我有同樣的問題。要使用奧利弗的轉換器解決方案,我必須創建轉換爲每個類有jodatime屬性這是有點煩人。我無法找到如何爲特定類型跨所有域類配置轉換器。我最終創建了AbstractMongoEventListener的子類,然後在保存之前和加載之後重置日期時間字段。希望這可以幫助。

0

正如Oliver指出的那樣,使用自定義轉換器。注意DATAMONGO-1026中描述的bug。這個問題也有自定義轉換器的例子,並希望很快關閉。